社区
网络编程
帖子详情
有关CSocket在多线程应用中的问题(高分送上)
goldolphin
2003-05-26 03:39:56
问题描述如下:
在Win32 MFC程序中使用CSocket实现阻塞数据报套接字,在主线程中创建并绑定一个套接字。在另一线程中使用该套接字,发送数据包(SendTo)没有问题,但接收(ReceiveFrom)则发生异常。
后将该套接字的创建和使用放在同一线程中,则没有异常,不解。
请各位指点~~~~
...全文
133
8
打赏
收藏
有关CSocket在多线程应用中的问题(高分送上)
问题描述如下: 在Win32 MFC程序中使用CSocket实现阻塞数据报套接字,在主线程中创建并绑定一个套接字。在另一线程中使用该套接字,发送数据包(SendTo)没有问题,但接收(ReceiveFrom)则发生异常。 后将该套接字的创建和使用放在同一线程中,则没有异常,不解。 请各位指点~~~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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()的描述字是什么啊? 能说说吗?
Network Thread
该博客围绕VC编程展开,涉及网络编程、
多线程
和DLL等方面的诸多
问题
。如网络编程
中
IXMLHTTPRequest使用、文件下载、网页表单提交等;
多线程
里C
Socket
类使用、线程消息处理等;DLL方面有DLL调用、线程创建等
问题
,还包含IIS操作、进程监控等内容。
煤气罐检测数据集VOC+YOLO格式5170张1类别.md
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述
中
并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述
中
没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!
Screenshot_20260701_201727.jpg
Screenshot_20260701_201727.jpg
基于改进A算法的栅格全域覆盖路径规划研究(Matlab代码实现)
内容概要:本文围绕基于改进A*算法的栅格全域覆盖路径规划展开研究,重点实现了螺旋四边收缩遍历、往复行式遍历等多种路径遍历策略,并在Matlab平台上对算法进行了建模与仿真。通过对传统A*算法的优化,提升了路径规划的覆盖率与执行效率,有效解决了全域覆盖过程
中
存在的路径冗余、搜索效率低等
问题
,尤其适用于复杂障碍物分布环境下的全局路径规划任务。文
中
系统阐述了算法的设计原理、关键改进点、实现流程及仿真实验结果,验证了改进算法在实际
应用
场景
中
的优越性能。; 适合人群:具备一定Matlab编程能力及路径规划基础知识的科研人员、高校研究生、自动化与机器人相关领域的工程技术人员。; 使用场景及目标:①
应用
于智能机器人、无人机等自主移动设备在未知或部分已知环境
中
的全域覆盖任务;②为解决传统A*算法在全覆盖路径规划
中
存在的效率瓶颈提供可行的技术改进方案;③通过Matlab仿真平台验证算法有效性,辅助科研人员完成算法原型开发与性能评估,推动智能系统路径规划模块的实际落地
应用
; 阅读建议:建议读者结合文
中
的Matlab代码进行动手实践,深入理解算法细节,尝试在不同规模与复杂度的栅格地图
中
测试算法表现,进一步掌握路径规划的核心思想与优化技巧。
MAC与PHY详解(重点标注)
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 MAC(媒体访问控制器)与PHY(物理接口收发器)是构成以太网基础架构的两个核心组成部分,它们在数据链路层和物理层
中
承担着重要功能。以太网技术是计算机网络领域
中
应用
最为广泛的局域网技术之一,其相关标准主要由IEEE通过IEEE 802.3标准来制定,该标准详细规定了从物理层到介质访问控制层的通信协议和规范。MAC主要负责数据链路层的下半部分功能,其核心职责包括对网络
中
的数据传输进行管理,确保数据能够准确无误地在网络
中
传输。MAC通过评估网络状态来决定是否可以发送数据,并在发送前为数据附加必要的控制信息,最终将数据和控制信息按照标准格式传输至物理层。在接收数据时,MAC协议负责判断数据传输是否出现错误,若无错误则将数据的控制信息剥离后传递给逻辑链路控制(LLC)层。 PHY则负责物理层的具体实现,涵盖了电信号的传输与接收,以及将数据转换为物理信号发送至网络,或将物理信号转换回数据供MAC处理。IEEE 802.3标准对PHY的规范进行了规定,不同速度的PHY,例如10BaseT和100BaseTX,虽然在物理层上具有相同的分组描述,但所采用的信令机制存在差异,10BaseT使用曼彻斯特编码,而100BaseTX采用4B/5B编码,这种设计防止了硬件在不同速度下能够轻易兼容。 媒体独立接口(MII)是用于连接MAC和PHY的标准接口,作为IEEE 802.3定义的一个以太网行业标准,它包含了数据接口和管理接口。数据接口运用了两条独立的信道,其
中
一条用于发送器,另一条用于接收器,每条信道都包含数据、时钟和控制信号。总共需要16个信号来实现MII接口,以支持MAC和PHY之间的数据交...
网络编程
18,356
社区成员
64,165
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章