服务器一直在Listen,有多个客户端同时向服务器发送文件,而且是大文件,每个客户端都是每10K(请给个更合适的值,谢谢)发送一下,这时候服务器Accept,我不明白的是,服务器端的Accept如何知道是接受的那个客户端的上传数据呢?  因为要保存成不同的文件阿,会不会把数据保存的乱了阿。明明Accept的是B用户的数据,记录到A身上了,会不会这样阿?
谢谢!!!!

解决方案 »

  1.   

    呵呵,别忘记了,服务器Accept的时候,会返回一个Socket对象,这个对象才是真正与客户端通讯的Socket对象,它记录了客户端连接的详细信息。Socket mySocket = listeningSocket.Accept();另外,缓冲区个人认为1024字节(1k)会比较合适。
      

  2.   

    1024字节(1k)?
     I think 4K is better.
      

  3.   

    在你所说的1 vs n的c/s模式下,一般server开2种进(线程)。
    第一种,协议线程,负责客户端和server的协议通讯。此种线程只有一个。它负责管理下面第二种线程
    第二种,传输线程,负责某个客户端的文件传输。此类线程一般一个客户建一个。
    FTP就是使用上述模式。所以,不存在你所说的问题