社区
网络编程
帖子详情
有关CSocket在多线程应用中的问题(高分送上)
goldolphin
2003-05-26 03:39:56
问题描述如下:
在Win32 MFC程序中使用CSocket实现阻塞数据报套接字,在主线程中创建并绑定一个套接字。在另一线程中使用该套接字,发送数据包(SendTo)没有问题,但接收(ReceiveFrom)则发生异常。
后将该套接字的创建和使用放在同一线程中,则没有异常,不解。
请各位指点~~~~
...全文
88
8
打赏
收藏
有关CSocket在多线程应用中的问题(高分送上)
问题描述如下: 在Win32 MFC程序中使用CSocket实现阻塞数据报套接字,在主线程中创建并绑定一个套接字。在另一线程中使用该套接字,发送数据包(SendTo)没有问题,但接收(ReceiveFrom)则发生异常。 后将该套接字的创建和使用放在同一线程中,则没有异常,不解。 请各位指点~~~~
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
goldolphin
2003-05-28
打赏
举报
回复
FT,结帐
goldolphin
2003-05-27
打赏
举报
回复
事实上,并没有同时在两个线程中用同一个套接字进行收发。
我的意思是
“在另一线程中使用该套接字,发送数据包(SendTo)没有问题,但改为接收(ReceiveFrom)则发生异常。”
“若该套接字的创建和使用(ReceiveFrom)放在同一线程中,则没有异常”
winthegame
2003-05-26
打赏
举报
回复
dizzo(流浪汉) : 楼主不可能是传的对象吧!最最最差也是传指针进去啊。可能是修改了hSocket 的值了...而且楼主也说了,另一线程中使用该套接字,发送数据包(SendTo)没有问题哦。。
dizzo
2003-05-26
打赏
举报
回复
线程之间不能直接传递CSocket对象,要传递句柄。
先CAsyncSocket::Detach(),然后将这个句柄传到线程里,
然后在线程里CAsyncSocket::Attach();
MSDN里面的chat/chatsvr是个很好的例子。
c0der
2003-05-26
打赏
举报
回复
我认为是线程同步问题,请注意共享的数据问题.建议可响应WM_SOCKET_NOTIFY消息从而调用OnReceive() OnSend()等成员函数,可以在它们中调用自己的recv,send,在recv,send后给线程处理数据。
winthegame
2003-05-26
打赏
举报
回复
Debug模式下肯定有About Retry ,ignore 出现啊,用Retry一看,可能多半是因为Socket的句柄为零吧。可能某个语句不小心修改了hSocket的句柄吧。
goldolphin
2003-05-26
打赏
举报
回复
是未处理Win32异常,无法用WSAGetLastError()得到错误信息。系统弹出对话框说在MFC文件sockcore.cpp中有错误~~~~
winthegame
2003-05-26
打赏
举报
回复
接收(ReceiveFrom)则发生异常,那么WSAGetLastError()的描述字是什么啊? 能说说吗?
AC6111采集卡MFC实例
AC6111是北京双诺公司出品的数据采集卡。本实例
中
代码和文档在程序
中
都有比较详细的说明。
C
Socket
类与Win32函数在数据接收
中
的
应用
比较与解决方案
C
Socket
类在MFC(Microsoft Foundation Classes)库
中
扮演着重要的角色,它封装了底层的Winsock API,从而为开发者提供了更简洁的接口。在数据接收方面,C
Socket
类使用了Receive函数,该函数是其封装的一部分。同步机制是控制多个线程或进程对共享资源访问的手段,以避免数据冲突和资源竞争。常见的同步机制包括互斥锁(Mutex)、信号量(Semaphore)、事件(Event)和条件变量(Condition Variable)等。
Network Thread
怎样让控制台程序也能处理消息?到底这样可以吗?请高手指点。我在
多线程
中
使用C
Socket
的,怎么老是出错,请大家帮我看看!VC
中
使用IXMLHTTPRequest获取URL信息的
问题
,有代码*********************************************如何通过IXMLHTTPRequest下载文件?300分请教如何向DNS查询MX记录(SDK+
socket
)那位仁兄有在
基础
各位兄弟,在SDK编程
中
如果实现窗口分割呢?请问怎么得到一个函数的执行时间,单位毫秒!如何调试asp组件呀。用vc++调试编制的组件怎样画一个箭头?
高分
请教如何限制程序运行的方法?求助:通过编程DirectX抓屏------>masterz:再麻烦你一下,谢谢熟悉RichEdit的朋友过来看一下,RichEdit的几个
问题
.如何对 I/O 端口进行操作?有了该
问题
就有了思考(100分 献礼!)如何
WEB开发文档2 总结
转自:http://blog.donews.com/lvjiyong/archive/2006/06/29/931071.aspx怎样将后台生成的在内存
中
的图象显示到客户端Microsoft IE WebControls下载地址如何在DATAGRID
中
使用JAVASCRIPT脚本控制DataGrid
中
连接到下一页显示数据下载
中
文名文件时保存文件名乱码
问题
关于用ASP.net绘图的
问题
,请大虾指教那
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章