本帖最后由 oyljerry 于 2014-08-15 10:57:56 编辑

解决方案 »

  1.   

    一般网络通信都是有自己的通信规约,你说的用不同的SOCKET,一个用以聊天,一个用以传文件,这样你就得在连入的时候表示出不同套接字的作用,或者直接监听不同的端口。不过建议还是有自己的协议,有粘包的时候更好处理。
    传文件还是应答式的更好,这样如果某一包出现问题,不会导致整个过程作废。
    不管是广播还是组播都是针对局域网来说的,广域网是不行的。只能UDP或TCP。文字传输要是有应得的话,UDP是比较好的选择。
      

  2.   

    即使是自己添加包头,识别客户端发来的连接也是个问题啊。服务端既然一对多,服务端一个SOCKET用以监听连接,一个SOCKET用以收发数据,他是怎么识别不同的客户端而进行区别对待呢,如果没有什么特别处理,默认的是单点对单点,而且是最后一个客户端的连接才有效的。
      

  3.   

    不知道有多少前人掉在TCP Socket
    send(人多)send(病少)send(财富)
    recv(人多病)recv(少财富)
    陷阱里面啊!
    http://bbs.csdn.net/topics/380167545
      

  4.   

    下面这两篇文章或许能帮到你。
    http://www.cnblogs.com/EdmundDwyane/p/3248297.html
    http://www.cnblogs.com/EdmundDwyane/p/3278641.html
    另外还有一个带源码的DEMO
    http://www.cnblogs.com/EdmundDwyane/p/3461130.html