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

csgo 2005-10-08 05:49:36
如题。
...全文
394 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
显然比在单线程中容易出现问题。

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧