创建了两个线程一个收一个发,没有进行同步处理.这样同时进行收发会不会有什么问题?

解决方案 »

  1.   

    理论上可以,但不管是send还是recv都会涉及SOCKET_ERROR时的处理,这样如果你不保护SOCKET句柄的话,后果可想而知。
      

  2.   

    可以,不过在使用之前一定要判断socket句柄是否正确
      

  3.   

    TO: lifengice0706(无) ( ) 信誉:102 
    我用的是UDP套接字,想做一个UDP服务器.如果要进行同步处理的话在性能上可能不会很高效的.
    况且是在个socket句柄上进行. 这只是我个人识为!TO:zhaojian999(淡淡的香烟味) ( ) 信誉:95 
    这个不用你说,这个是最基本的条件.TO: nuaawenlin(飘人) ( ) 信誉:105 
    你说的意思是指网卡支持全双工就行吗?不用考虑其它因素吗?比喻说在公网上进行!
    有做过UDP服务器的吗?能谈谈怎样提高UDP服务器的性能.及效率.
      

  4.   

    完全可以
    SOCKET是全双工的
      

  5.   

    前面有几个人乱扯淡,什么要保证SOCKET 有效什么要加保护
    没任何限制,你拿这个SOCKET吧,同时多个收发都没问题
      

  6.   

    SOCKET是全双工的 ,就是收发互不干扰!
      

  7.   

    前面有几个人乱扯淡,什么要保证SOCKET 有效什么要加保护
    没任何限制,你拿这个SOCKET吧,同时多个收发都没问题
    --------------------------------------------------------
    是否可以在不同线程中不加任何同步的往某个 socket 上写?
      

  8.   

    是否可以在不同线程中不加任何同步的往某个 socket 上写?
    ----------------------------------------------------
    当然可以,不过一般没这个必要,会导致包在逻辑上乱序等等,但是发的数据对方肯定可以收到,,
    不仅不同的线程可以,不同的进程里也可以用同一个SOCKET发送,
      

  9.   

    谢谢各位的回答!在基于MFC的CAsyncSocket封装中,我看了些它的原代码,为什么它却加了保护的?我知道用CAsyncSocket当然是安全的,但是在原始套接字在多线程中也是安全的吗?