一个监听端口够吗?服务器 需要把处理客户端的命令和文件。所以用2个端口分别来处理。可是不知道服务器需要几个端口来监听客户端,一个监听够吗?

解决方案 »

  1.   

    我觉得1楼说得很对,客户端发起连接(Connect)时是需要指定服务器地址和端口的,服务器需要为每个接入(Accept)的客户端维持一个连接,连接建立后就可以通讯(Send/Receive),这是基本的Socket编程模式。对服务器来说,采用异步或者完成端口的模式,不管多少个客户端连接都可以处理,只受服务器资源和带宽限制。反过来,如果服务器有多个端口,客户端怎么去选择?服务器多个端口,互相怎么去协调?服务器开端口多了,反而影响网络效率。同时,你说的什么命令端口、文件端口,也没啥必要吧,尤其命令,都通过建立的连接去传输就是了,有需要大数据传输开一个文件端口倒也说得过去。当然,我说的都是普遍的做法,也许你们有特殊需求,那就没办法了。
      

  2.   

    你怎么使用6000就怎么使用 8100 8101        你还想客户端connect  6000端口以后 又往8100或者8101发数据?  基础都没搞懂...
      

  3.   


    TCP的监听端口只是处理连接请求的,你实际建立的命令、文件传输等连接,服务端是用的随机分配的端口。
      

  4.   

    与FTP类似,FTP就是双连接,accept创建的socket传命令,另外还需要一个数据连接
    主动模式下,是客户端创建数据连接的监听端口等待服务器来连
    被动模式下,是服务器创建数据连接的监听端口等待客户端来连
    无论哪种,都是通过初始accept创建的socket作为命令连接传递 对方 已初始化的数据监听端口,因为这个监听端口一般都bing端口0从而使用 临时端口,所以必须显式的告诉对方回到你的模型再创建一个 bind到0端口的监听就行了,6000端口accept得到的socket作为命令控制连接另外6000端口accept得到的所有socket其本地bind的端口还是6000,不会占用其他的端口