关于单个SOCKET并行收发的问题 tcp是双工发送 和接收 不冲突 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不会造成冲突,socket是全双工的,收和发经过不同的网线,进入网卡不同的硬件缓冲区中,他们是独立工作的,相互不影响。即使针对于send这个单路操作,你应用层也可以多线程发送,协议栈会保证数据的正确性和独立性。 多谢,可能无解我的意思了。我知道SOCKET工作是双工的,这个没问题。我的问题是从多线程的角度,如果收发线程同时操作同一个socket对象,是否需同步控制?另外,我的并行收发实现想法有否问题,可行么? 嗯,多谢。另外,我的单socket实现并行收发的想法可行么?另以免无解我的意思我再强调下:我知道SOCKET工作是双工的,这个没问题。我的问题是从多线程的角度,如果收发线程同时操作同一个socket对象一个send一个recv,是否需同步控制?如果应用层多个线程同时对一个socket执行send操作,那么我想肯定是需要同步控制的。 不用同步控制,收发本来就是两个独立的通道,他们没有任何关系,为什么要同步?多线程同时send,也不需要同步,因为协议栈会保证只有一个send能成功,其他的send都会等待(或者返回0),所以你需要判断send的返回值。当然你也可以做同步,对流程也没啥影响,但是即使你做了同步,判断返回值的动作还是省不掉的 多个线程同时send 同一个socket的话,会出现问题的,楼上说不需要同步(我不是很能理解)同时操作一个资源不同步怎么行? 楼主可以这样做啊,弄一个发送消息队列,n多个线程需要send消息,就push到消息队列。用一个发送线程,不断的去发送消息队列里面取消息,取出来就发送出去... 控件自绘 BCGControlBar Pro10.0使用问题,谢谢! 急,workspace无法打开,哪位大虾指点一下??? 在VC中当鼠标移到浏览器相关链接时如何得到其链接地址? 明天倒休,苦呀! VC掉用ACTIVE DLL的问题。 大家试试自己的功力. 如何获得当前窗口的句柄?有什么API可以用啊? InstallShield Script中调用c/c++DLL 怎么得到windows的鼠标左键消息 动态库so中使用了pthread,使用dlcllose卸载库,再usleep(5000)会导致segmentation fault 关于MFC创建新类
另以免无解我的意思我再强调下:我知道SOCKET工作是双工的,这个没问题。我的问题是从多线程的角度,如果收发线程同时操作同一个socket对象一个send一个recv,是否需同步控制?如果应用层多个线程同时对一个socket执行send操作,那么我想肯定是需要同步控制的。
用一个发送线程,不断的去发送消息队列里面取消息,取出来就发送出去...