仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1068|回复: 18
打印 上一主题 下一主题

[学习教程] 了解下JAVA的用Java Socket开辟撑持上千个并发的小型服务器(下)

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:30:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
C#是不行的,比如说美国的航天飞船里就有java开发的程序以上是我的愚见,其实不管那种语言,你学好了,都能找到好的工作,
总结一下客户机
我们的类研讨完了。在我们持续往前会商服务器真个情形之前,让我们回忆一下创立和利用Socket的步骤:
1.用您想毗连的呆板的IP地点和端话柄例化Socket(若有成绩则抛出Exception)。
2.猎取Socket上的流以举行读写。
3.把流包装进BufferedReader/PrintWriter的实例,假如如许做能使事变更复杂的话。
4.对Socket举行读写。
5.封闭翻开的流。
5创立服务器Socket
创立RemoteFileServer类
  1. 1.importjava.io.*;2.importjava.net.*;3.publicclassRemoteFileServer{4.intlistenPort;5.publicRemoteFileServer(intlistenPort){6.this.listenPort=listenPort;7.}8.//同意客户机毗连到服务器,守候客户机哀求9.publicvoidacceptConnections(){10.try{11.ServerSocketserver=newServerSocket(listenPort);12.SocketincomingConnection=null;13.while(true){14.incomingConnection=server.accept();15.handleConnection(incomingConnection);16.}17.}18.catch(BindExceptione){19.System.out.println("Unabletobindtoport"+listenPort);20.}21.catch(IOExceptione){22.System.out.println("UnabletoinstantiateaServerSocketonport:"+listenPort);23.24.}25.}26.//与客户机Socket交互以将客户机所哀求的文件的内容发送到客户机27.publicvoidhandleConnection(SocketincomingConnection){28.try{29.OutputStreamoutputToSocket=incomingConnection.getOutputStream();30.InputStreaminputFromSocket=incomingConnection.getInputStream();31.BufferedReaderstreamReader=newBufferedReader(newInputStreamReader(inputFromSocket));32.FileReaderfileReader=newFileReader(newFile(streamReader.readLine()));33.BufferedReaderbufferedFileReader=newBufferedReader(fileReader);34.PrintWriterstreamWriter=newPrintWriter(incomingConnection.getOutputStream());35.Stringline=null;36.while((line=bufferedFileReader.readLine())!=null){37.streamWriter.println(line);38.}39.fileReader.close();40.streamWriter.close();41.streamReader.close();42.}43.catch(Exceptione){44.System.out.println("Errorhandlingaclient:"+e);45.e.printStackTrace();46.}47.}48.publicstaticvoidmain(Stringargs[]){49.RemoteFileServerserver=newRemoteFileServer(1001);50.server.acceptConnections();51.}52.}
复制代码
<p>
先说优点,首先和C,C++这些语言比起来,java很简单,去掉指针的java,非常好理解,自动垃圾回收机制也很好,自从JDK1.5推出以后,性能上又有了很大提高。
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-21 08:55:18 | 只看该作者
是一种突破用户端机器环境和CPU
再现理想 该用户已被删除
板凳
发表于 2015-1-25 23:11:23 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
飘飘悠悠 该用户已被删除
地板
发表于 2015-1-28 05:49:59 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
山那边是海 该用户已被删除
5#
发表于 2015-1-28 13:52:21 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
柔情似水 该用户已被删除
6#
发表于 2015-2-1 09:55:38 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
不帅 该用户已被删除
7#
发表于 2015-2-5 05:29:40 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
变相怪杰 该用户已被删除
8#
发表于 2015-2-24 03:37:54 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
活着的死人 该用户已被删除
9#
发表于 2015-3-3 15:22:22 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
再见西城 该用户已被删除
10#
发表于 2015-3-11 11:25:52 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
海妖 该用户已被删除
11#
发表于 2015-3-12 16:35:42 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
愤怒的大鸟 该用户已被删除
12#
发表于 2015-3-19 23:57:47 | 只看该作者
是一种为 Internet发展的计算机语言
谁可相欹 该用户已被删除
13#
发表于 2015-3-20 18:57:53 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
灵魂腐蚀 该用户已被删除
14#
发表于 2015-3-28 21:40:45 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
乐观 该用户已被删除
15#
发表于 2015-3-31 18:58:07 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
分手快乐 该用户已被删除
16#
发表于 2015-4-1 11:25:49 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
17#
发表于 2015-4-6 19:11:41 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
老尸 该用户已被删除
18#
发表于 2015-4-16 02:10:58 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
金色的骷髅 该用户已被删除
19#
发表于 2015-4-16 19:10:09 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-29 01:19

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表