请问在TCP/IP通信中,
方案A:客户端每次数据传输,都采取这样的顺序:connect-> send、recv->closesocket
服务器只有一台,客户端有上百台,同时进行数据传输,并且多次的进行这样的数据传输,就是说,每次传输都先connect,传输完后就closesocket。
方案B:客户端只connect一次,然后就send、recv,等到关机(或者是不运行时)时才closesocket。那个方案对服务器性能影响更大呢?谢谢!

解决方案 »

  1.   

    第一种方案,节省了部分内存和为分页内存,如果客户端只有几百个,甚至几十个,这个内存可以忽略不计
    第二种方案,节省了每次CONNECT的时间,但需要维持几百个SOCKET
    所以,如果你的客户端数量有限,建议使用第二种方案。如果你的客户端数量超多,类似于IIS这样的,可以选择第一种方案。
      

  2.   

    如果采用第二种方案,那么客户端connect上之后,长时间没数据传输,这个SOCKET会不会断掉(跨路由的情况)?