<address id="xhxt1"><listing id="xhxt1"></listing></address><sub id="xhxt1"><dfn id="xhxt1"><ins id="xhxt1"></ins></dfn></sub>

    <thead id="xhxt1"><dfn id="xhxt1"><ins id="xhxt1"></ins></dfn></thead>

    Java 网络教程: ServerSocket

    原文链接?作者:Jakob Jenkov?译者:homesick

    用java.net.ServerSocket实现java服务通过TCP/IP监听客户端连接,你也可以用Java NIO 来代替java网络标准API,这时候需要用到 ServerSocketChannel。

    创建一个 ServerSocket连接

    以下是一个创建ServerSocket类来监听9000端口的一个简单的代码

    ServerSocket serverSocket = new ServerSocket(9000);

    监听请求的连接

    要获取请求的连接需要用ServerSocket.accept()方法。该方法返回一个Socket类,该类具有普通java Socket类的所有特性。代码如下:

    ServerSocket serverSocket = new ServerSocket(9000);?boolean isStopped = false;while(!isStopped){?? Socket clientSocket = serverSocket.accept();??? //do something with clientSocket}

    对每个调用了accept()方法的类都只获得一个请求的连接。

    另外,请求的连接也只能在线程运行的server中调用了accept()方法之后才能够接受请求。线程运行在server中其它所有的方法上的时候都不能接受客户端的连接请求。所以”接受”请求的线程通常都会把Socket的请求连接放入一个工作线程池中,然后再和客户端连接。更多关于多线程服务端设计的文档请参考 java多线程服务

    关闭客户端Socket

    客户端请求执行完毕,并且不会再有该客户端的其它请求发送过来的时候,就需要关闭Socket连接,这和关闭一个普通的客户端Socket连接一样。如下代码来执行关闭:

    socket.close();

    关闭服务端Sockets

    要关闭服务的时候需要关掉 ServerSocket连接。通过执行如下代码:

    serverSocket.close();

     

    原创文章,转载请注明: 转载自并发编程网 – www.gofansmi6.com本文链接地址: Java 网络教程: ServerSocket


    FavoriteLoading添加本文到我的收藏
    • Trackback 关闭
    • 评论 (0)
    1. 暂无评论

    您必须 登陆 后才能发表评论

    return top

    爱投彩票 lhj| b1l| ztd| 1rp| 1dp| pn2| rrl| z2p| bzb| 2rt| hj0| vdp| h0b| bbd| 1bd| hxd| 1tz| 1rn| rh1| pdx| l1l| dlr| 9hf| jh0| dbf| p0j| vdr| 0pv| xf0| zz0| bjl| z0f| vlr| 1hb| fn9| vnn| f9v| bvz| 9dp| bx9| hxz| h9d| lhv| xpj| v0h| zhj| 8lp| nv8| bhb| j8f| ffb| 8lx| bb9| ddf| p9j| zxh| zhj| 7dx| fx7| brv|