仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1096|回复: 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推出以后,性能上又有了很大提高。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-15 07:33

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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