java套接字(socket)多线程例子

java套接字(socket)多线程例子

ID:16827657

大小:22.21 KB

页数:5页

时间:2018-08-25

java套接字(socket)多线程例子_第1页
java套接字(socket)多线程例子_第2页
java套接字(socket)多线程例子_第3页
java套接字(socket)多线程例子_第4页
java套接字(socket)多线程例子_第5页
资源描述:

《java套接字(socket)多线程例子》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、杭州java软件培训www.zjbenet.com一个多线程的示例1.介绍前面的示例教给您基础知识,但并不能令您更深入。如果您到此就停止了,那么您一次只能处理一台客户机。原因是handleConnection()是一个阻塞方法。只有当它完成了对当前连接的处理时,服务器才能接受另一个客户机。在多数时候,您将需要(也有必要)一个多线程服务器。要开始同时处理多台客户机,并不需要对RemoteFileServer作太多改变。事实上,要是我们前面讨论过待发(backlog),那我们就只需改变一个方法,虽然我们将需要创建一些新东西来处理进入的连接。这里我们还将向您展示

2、ServerSocket如何处理众多等待(备份)使用服务器的客户机。本示例对线程的低效使用,所以请耐心点。2.接受(太多)连接这里我们实现改动过的acceptConnections()方法,它将创建一个能够处理待发请求的ServerSocket,并告诉ServerSocket接受连接:Java代码1.publicvoidacceptConnections(){2.try{3.ServerSocketserver=newServerSocket(listenPort,5);4.SocketincomingConnection=null;5.while(tru

3、e){6.incomingConnection=server.accept();7.handleConnection(incomingConnection);8.}9.}catch(BindExceptione){10.System.out.println("Unabletobindtoport"+listenPort);11.}catch(IOExceptione){12.System.out.println("UnabletoinstantiateaServerSocketonport:"+listenPort);13.}14.}新的server仍然需

4、要acceptConnections(),所以这些代码实际上是一样的。突出显示的行表示一个重大的不同。对这个多线程版,我们现在可以指定客户机请求的最大数目,这些请求都能在实例化ServerSocket期间处于待发状态。如果我们没有指定客户机请求的最大数目,则我们假设使用缺省值50。这里是它的工作机制。假设我们指定待发数(backlog值)是5并且有五台客户机请求连接到我们的服务器。我们的服务器将着手处理第一个连接,但处理该连接需要很长时间。由于我们的待发值是5,所以我们一次可以放五个请求到队列中。我们正在处理一个,所以这意味着还有其它五个正在等待。等待的和

5、正在处理的一共有六个。当我们的服务器仍忙于接受一号连接(记住队列中还有2―6号)时,如果有第七个客户机提出连接申请,那么,该第七个客户机将遭到拒绝。我们将在带有连接池服务器示例中说明如何限定能同时连接的客户机数目。3.处理连接:第1部分otherstaffoftheCentre.Duringthewar,ZhuwastransferredbacktoJiangxi,andDirectorofthenewOfficeinJingdezhen,JiangxiCommitteeSecretary.Startingin1939servedasrecorderoft

6、heWestNorthOrganization,SecretaryoftheSpecialCommitteeAfterthevictoryofthelongMarch,hehasbeentheNorthwestOfficeoftheFederationofStateenterprisesMinister,ShenmufuguSARmissions,DirectorofNingxiaCountypartyCommitteeSecretaryandrecorderoftheCountypartyCommitteeSecretary,Ministersand杭州

7、网络营销培训www.hzbeidaqingniao.com杭州java软件培训www.zjbenet.com这里我们将讨论handleConnection()方法的结构,这个方法生成一个新的Thread来处理每个连接。我们将分两部分讨论这个问题。这一屏我们将着重该方法本身,然后在下一屏研究该方法所使用的ConnectionHandler助手类的结构。Java代码1.publicvoidhandleConnection(SocketconnectionToHandle){2.newThread(newConnectionHandler(connectionT

8、oHandle)).start();3.}我们对RemoteFil

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。