RT例如:A机 相互 B机 收发UDP数据,
方式一:socket_X 在 线程M 中连续不断的发数据,socket_Y 在 线程N 中接收数据。(2个线程使用2个socket)
方式二:socket_X 在 线程M 中连续不断的发数据,并且 线程N 也使用 socket_X 来接收数据。(2个线程使用1个socket)请问这两种方式有区别吗?如果 要发送的数据 很多很多,要接收的数据也很多很多,两种方式在 效率上 会有差别吗?

解决方案 »

  1.   

    就是这个情况,我不需要等待回复,那 2个线程 用 2个socket 是不是比 2个线程 用 1个socket 效率更高???(假设需要连续不断的接收和发送数据)
      

  2.   

    我用2个临时的socket 在线程里面创建的,这样可以,至于效率没比过
      

  3.   

    UP  有人比较过 效率有差别不?还是说 :socket只是用于描述IP地址和端口的 描述性的东西??只要 IP地址 和 端口 相同,1个socket 和 100个socket 没什么区别???????
      

  4.   

    一个socket
    两个(多个)线程
      

  5.   

    一个控制命令通道,一个数据传送通道,这就是FTP的思想.
      

  6.   

    我的意思是:
    假设情况:
     A机 线程1 向B一直不停的发数据,A机 线程2 从B那里一直不停的接收数据 (使用UDP)。
    那 线程1 和 线程2 是使用 1个socket效率高,还是使用 2个socket效率高???或者说 只要在 1个线程 里使用 1个socket??(因为如上 假设情况 中 “2个线程-->2个socket通讯”、“2个线程-->1个socket通讯”、“1个线程-->1个socket通讯” 所表现出来的效率是完全一样的?没有任何差别??????)
      

  7.   

    2个线程用2个socket  和2个线程用1个socket  效率上没区别  
    只是多维护一个socket占用系统资源而已(不过这个可以忽略不计)只要你的socket连接是好的  那用A和用B 有区别吗? 至少从程序的层面上没区别
    站在操作系统或底层实现的层面上也许有差别  不过你的1、2个线程 1、2个socket
    即使在底层有区别 也体现不出来有时间你可以好好研究下  我也想知道底层的区别
      

  8.   

    效率高低不取决于用多少个Socket
    而是看你这个业务中,每次发送接收的数据量大小、并发的数量大小、网络的稳定性,业务处理的复杂度
    线程的使用等 很多因素,
    要到达最高效率关键是看你是否根据需求进行合理设计