同一个socket在多个线程中使用容易出现问题吗?

csgo 2005-10-08 05:49:36
如题。
...全文
210 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zxyjyzxyjy 2005-10-09
我认为,单CPU计算机上一个socket用一个线程发送,一个线程接收足够了,如果是多CPU则作好线程同步就行了。
回复
goodboyws 2005-10-09
CAsyncSocket是线程安全的
回复
DentistryDoctor 2005-10-09
在线程间传递CSocket*将会带来问题。

http://support.microsoft.com/default.aspx?scid=kb;en-us;175668
回复
xxrl 2005-10-09
楼上说的对 CSocket具有线程依赖性,而且的确如果用的不好 在多线程中CSocket的确有很多问题,一般如果出现这种情况 都改成了api来编程
回复
showgoodday 2005-10-08
Winsocks本身是支持多线程的,具有一定的线程独立性和安全性,但CSocket类以及CAsyn
cSocket类都有一些线程安全性问题。比如在线程之间传递CSocket对象就会发生异常,MS
DN中的建议是,传递前Detach,传递socket句柄,在目标线程中再Attach到一个CSocket对
象上。这似乎说明CSocket(或CAsyncSocket)具有线程依赖性。
回复
lifengice0706 2005-10-08
注意同步对它的操作,再说如果你在两个线程中都send了,那接收的那一端必须根据一个固定的包结构(你自己定的)进行解包和拼包。
回复
MuseIn 2005-10-08
那是一定的。
回复
goodboyws 2005-10-08
要看你怎么用了,不要又是CSocket
回复
快乐鹦鹉 2005-10-08
显然比在单线程中容易出现问题。
回复
发帖
网络编程
创建于2007-09-28

1.8w+

社区成员

VC/MFC 网络编程
申请成为版主
帖子事件
创建了帖子
2005-10-08 05:49
社区公告
暂无公告