网上查到的例子都是一个serverSocket
如果我想在服务端用两个serverSocket(也就是两个port),程序应该怎样写?
这样做的目的是,有时候一个发送信息太多太大,占用时间较长的连接会影响其他客户端的请求, 用两个serverSocket,也就是用两个端口可以分散资源

解决方案 »

  1.   

    答:
    1)通常没有必要。理由:ServerSocket只负责TCP连接,真正有数据通信与它无关。因为每当一个客户连接起来,都会创建一个线程具体负责与该客户的通信。因此:“占用时间较长的连接会影响其他客户端的请求,”实际上是不成立的。
    2)实在要做也很简单,,即:程序一启动,即创建两个线程,每一个线程都相继创建ServerSocket并等待客户连接,每当一个客户连接起来,都会创建一个线程具体负责与该客户的通信。
    3)若你不想使用线程,则可使用ServerSocketChannel与ServerChannel来完成。以下仅供你参考
      

  2.   

    谢谢,明白你的意思。这里要做两个serverSocket的意图是,要用两个端口,因为有时候服务发送数据量很大,占用时间较长,甚至是连续几个礼拜的传送数据,这样如果用一个端口的话,会不会占用资源太多?
      

  3.   

    可是不管用多少个线程,调用一个serverSocket就用一个端口,所有传输的信息都从这个端口走,如果数据量过大的话怎么办?我不是说是否影响其他客户端的操作,我是说是否数据量太大,才会要独自占用一个端口