有关CSocket在多线程应用中的问题(高分送上)

goldolphin 2003-05-26 03:39:56
问题描述如下:
在Win32 MFC程序中使用CSocket实现阻塞数据报套接字,在主线程中创建并绑定一个套接字。在另一线程中使用该套接字,发送数据包(SendTo)没有问题,但接收(ReceiveFrom)则发生异常。
后将该套接字的创建和使用放在同一线程中,则没有异常,不解。
请各位指点~~~~
...全文
152 8 打赏 收藏 举报
写回复
用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()的描述字是什么啊? 能说说吗?
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 【创新7.1声卡KX驱动+连线图】是一款专门为创新公司所制造的7.1音频声卡量身定制的驱动方案,其核心宗旨在于为用户带来超越官方原生驱动程序的卓越音质感受。KX驱动属于一种由爱好者群体自主开发的非官方驱动软件,该驱动在Creative公司原版驱动程序的基础上进行了深度改良与功能扩充,旨在提供更为多样化的声音调节参数以及更为出色的运行表现。 我们现在来详细认识一下7.1声道系统。7.1声道代表的是一种沉浸式音频技术规范,该规范包含七个全频域音箱单元(具体包括前置左声道、前置右声道、中央声道、环绕左声道、环绕右声道、后置左声道以及后置右声道)搭配一个低频震动单元,其设计目的是为用户构建更加立体且逼真的听觉场景,尤其适合应用于电子游戏、电影观影以及音乐欣赏等场景。 KX驱动的独到之处在于其赋予了用户更为广阔的个性化定制权限,使用者能够依据自身的听音偏好对音频参数进行细致调节,例如均衡器参数、混响效果、压缩比设定、噪声抑制门限等,从而使得最终的音效呈现出更为精致且个性化的特质。不仅如此,KX驱动还兼容VST插件机制,该机制是虚拟乐器与音频效果处理软件的通用标准,用户通过安装各式各样的VST插件,能够进一步增强声卡的实用功能,例如模拟多种乐器音色或达成复杂的声音效果制作。 在获取并部署KX驱动程序之后,对"连线图"的正确导入工作具有决定性意义。连线图又被称为音频路由配置图或信号流向示意图,它是一份用于指导用户如何正确配置并连接各个音频输出通道的视觉化手册。对于非专业背景的使用者而言,准确设定这些音频通道可能会面临一定程度的困难,因此连线图的提供极大地简化了这一过程。依照连线图进行配置操...
内容概要:本文介绍了基于粒子群优化算法(PSO)优化长短期记忆网络(LSTM)的电力负荷预测方法,并通过Python代码实现。该方法结合PSO强大的全局搜索能力,对LSTM模型的关键超参数进行智能寻优,有效提升了模型在处理非线性、强时序性电力负荷数据时的预测精度与泛化性能。文中系统阐述了从数据预处理、模型构建、PSO优化流程到预测结果分析的完整技术链条,重点展示了如何通过优化算法克服传统LSTM参数依赖经验设定的局限性,为复杂时间序列预测提供了高效解决方案。; 适合人群:具备一定Python编程能力和机器学习基础知识,从事电力系统分析、能源管理、负荷预测等相关领域的研究人员、工程师以及高校研究生。; 使用场景及目标:①应用于电力系统的短期与中期负荷预测,提升电网调度的准确性与经济性;②作为智能优化算法与深度学习融合的典型范例,用于科研项目开发与教学实践;③目标在于通过超参数自动优化,显著降低预测模型的均方根误差(RMSE)和平均绝对百分比误差(MAPE),增强模型的鲁棒性与实用性。; 阅读建议:建议读者结合所提供的完整Python代码,深入理解PSO优化LSTM的具体实现过程,重点关注适应度函数的设计、参数编码方式及优化迭代机制,并鼓励在自有数据集上进行复现实验与调参优化,以深刻掌握模型性能提升的技术路径。

18,356

社区成员

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

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