社区
网络编程
帖子详情
CSocket的OnReceive不触发问题
mzy2003
2006-10-27 02:59:56
使用CSocket连接服务器,在OnReceive里接收服务器端定时发送的数据包,有时会出现连接上后OnReceive函数不触发,而使用嗅探器又能探测到服务器发送过来的包。为什么会出现这个现象。CSocket没做其他额外的处理,继承后就简单使用了。请各位解答下!!!!!
...全文
610
12
打赏
收藏
CSocket的OnReceive不触发问题
使用CSocket连接服务器,在OnReceive里接收服务器端定时发送的数据包,有时会出现连接上后OnReceive函数不触发,而使用嗅探器又能探测到服务器发送过来的包。为什么会出现这个现象。CSocket没做其他额外的处理,继承后就简单使用了。请各位解答下!!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mzy2003
2006-11-22
打赏
举报
回复
自己再up
mzy2003
2006-11-06
打赏
举报
回复
if(WSAAsyncSelect(m_hSocket, AfxGetMainWnd()->GetSafeHwnd(), WM_SOCK_EVENT, FD_READ | FD_CLOSE)==SOCKET_ERROR)//仅选择接收和关闭进行异步机制
连接后调用这句做了异步处理,在WM_SOCK_EVENT这个自定义消息里接收。还是有时嗅叹气连续探到server发的0长度的包或粘在一起的包,这是就不触发接收事件WM_SOCK_EVENT了。继续郁闷着...
qinxiaogang
2006-11-03
打赏
举报
回复
AsyncSelect( FD_READ ); 加上这句试试
widesoft
2006-11-01
打赏
举报
回复
OnRecive要在CSocket派生类中重载一下吧。。。
mzy2003
2006-10-31
打赏
举报
回复
改成api了,recv和closesocket设置为异步,似乎还有这个现象,嗅叹气老连续探到server发的0长度的包或粘在一起的包,这是就不触发接收事件了,server端发生什么了?????????是不是需要设置什么option?
mzy2003
2006-10-28
打赏
举报
回复
改成api做后,要求客户端一直接收服务端发送过来的数据,客户端也每隔几秒发送联络数据到服务端,使用同步Socket,这种应用一般怎么处理,今天弄了一天了,开了一个线程在死循环里不断recv,在计时器里也每隔几秒发送一个固定信息,在线程函数里recv,总返回SOCKET_ERROR。请大虾门支个高招。
meicaikourou
2006-10-27
打赏
举报
回复
因为OnReceive还没接受完成,确认发过来的格式可以让OnRecive接受完成吗?
star119119
2006-10-27
打赏
举报
回复
我只会aip的
不会csocket 帮顶
mzy2003
2006-10-27
打赏
举报
回复
现在已经做程CSocket通信了,改 socket api来不及了,为什么会出现有时不触发OnReceive现象?
toxyboy
2006-10-27
打赏
举报
回复
遇到过CAsyncSocket的问题.CSocket的就不知道了.看你的情况是接收的那边不相应,因该是消息阻塞或者其它什么原因了!
neosu
2006-10-27
打赏
举报
回复
SOCKET的API较好用.
mzy2003
2006-10-27
打赏
举报
回复
牛人哪里区了??????
用C
Socket
重写OnRe
ceive
()之后,出现消息收不到的情况
在实现多人聊天室的Winsock实验中,遇到消息收不到的
问题
。原因在于未设置
Socket
的响应事件。解决方案是在OnRe
ceive
()内调用AsyncSelect(FD_READ),确保
Socket
对读取事件感兴趣。AsyncSelect用于设置感兴趣的网络事件,如FD_READ用于读取准备就绪的通知。修改后的代码中,当FD_READ事件发生时,将调用OnRe
ceive
()处理接收到的消息。
mfc C
Socket
OnRe
ceive
只响应了一次
博客探讨了在使用MFC的C
Socket
类进行TCP通信时遇到的
问题
,即OnRe
ceive
函数只被调用一次。作者通过源码分析发现,需要在OnRe
ceive
后调用Re
ceive
函数来
触发
后续响应。解决方案是确保数据被正确处理,或者使用AsyncSelect(FD_READ)。这对于理解MFC网络编程和C
Socket
类的使用具有参考价值。
用C
Socket
基于UDP协议进行网络通信过程中OnRe
ceive
函数无法响应消息的一个原因
本文分享了解决在使用C
Socket
类派生D
Socket
类进行网络通信时,D
Socket
类的OnRe
ceive
函数无法响应发送消息的
问题
。通过正确的工程创建步骤和对C
Socket
类的理解,成功解决了该
问题
。
C
Socket
中 send 与onsend()区别
本文详细解析了网络编程中的OnSend与OnRe
ceive
函数的功能及应用场景,介绍了它们与send和re
ceive
函数的区别,以及如何在C
Socket
模型下正确使用这些函数。
关于C
Socket
类的Re
ceive
超时的
问题
本文介绍了一种在C
Socket
类中实现超时处理的方法。通过重写OnMessagePending、Send和Re
ceive
方法,利用Windows API的SetTimer和KillTimer功能,实现了发送接收操作的超时控制。
网络编程
18,356
社区成员
64,165
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章