用Java Socket开辟支持上千个并发的小型服务器(下)[Java编程]
本文“用Java Socket开辟支持上千个并发的小型服务器(下)[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
总结一下客户机
我们的类研究完了.在我们持续往前谈论服务器端的情形之前,让我们回想一下成立和利用Socket的步骤:
1.用您想衔接的机械的IP地址和端口实例化Socket(若有问题则抛出Exception).
2.获得Socket上的流以举行读写.
3.把流包装进BufferedReader/PrintWriter的实例,假如这样做能使事情更简单的话.
4.对Socket举行读写.
5.关闭翻开的流.
5成立服务器Socket
成立RemoteFileServer类
importjava.io.*;
importjava.net.*;
publicclassRemoteFileServer{
intlistenPort;
publicRemoteFileServer(intlistenPort){
this.listenPort=listenPort;
}
//答应客户机衔接到服务器,等候客户机恳求
publicvoidacceptConnections(){
try{
ServerSocketserver=newServerSocket(listenPort);
SocketincomingConnection=null;
while(true){
incomingConnection=server.accept();
handleConnection(incomingConnection);
}
}
catch(BindExceptione){
System.out.println("Unabletobindtoport"+listenPort);
}
catch(IOExceptione){
System.out.println("UnabletoinstantiateaServerSocketonport:"+listenPort);
}
}
//与客户机Socket交互以将客户机所恳求的文件的内容发送到客户机
publicvoidhandleConnection(SocketincomingConnection){
try{
OutputStreamoutputToSocket=incomingConnection.getOutputStream();
InputStreaminputFromSocket=incomingConnection.getInputStream();
BufferedReaderstreamReader=newBufferedReader(newInputStreamReader(inputFromSocket));
FileReaderfileReader=newFileReader(newFile(streamReader.readLine()));
BufferedReaderbufferedFileReader=newBufferedReader(fileReader);
PrintWriterstreamWriter=newPrintWriter(incomingConnection.getOutputStream());
Stringline=null;
while((line=bufferedFileReader.readLine())!=null){
streamWriter.println(line);
}
fileReader.close();
streamWriter.close();
streamReader.close();
}
catch(Exceptione){
System.out.println("Errorhandlingaclient:"+e);
e.printStackTrace();
}
}
publicstaticvoidmain(Stringargs[]){
RemoteFileServerserver=newRemoteFileServer(1001);
server.acceptConnections();
}
}
以上是“用Java Socket开辟支持上千个并发的小型服务器(下)[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |