CAsyncSocket UDP接收不到数据?急~~~ 用监测工具监测到本地端口已经接收到数据,这说明数据包没丢。但是OnReceive函数就是不触发。为什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 OnReceive函数从未被调用过是吗?怎么Create的? int m_Port = 6666;m_pUDPSocket->Create(m_Port, SOCK_DGRAM);//m_pUDPSocket为继承自CAsyncSocket的类的对象指针OnReceive为m_pUDPSocket指向类成员函数监测工具监测到数据包时,系统没有调用m_pUDPSocket中的OnReceive()函数 to 6楼IP和端口设置应该没有问题。这个也不是开始就不能用具体表现为OnReceive的响应次数一直在减少->现在的不响应。可能是过个年程序吃多了 OnReceive的代码怎么写的?是不是有没调用ReceiveFrom的时候? 我们公司的程序也遇到过类似问题:CAsyncSocket接收时在自己缓冲区中保留一帧的情况。上一帧只有收到下一帧时才能读出来,而用网络侦听工具能确认上一帧已经收到了。最后没法子换ACE了。。另外另一个用CAsyncSocket的程序,发现在send的时候明明没有发送出去,但是返回值却跟发送成功一模一样,换ACE代价太大,正在苦恼中借贵宝地一用,希望有人能解释一下,给个建议。。 在找我的问题的时候,看到了跟你的问题相关的讨论:CAsyncSocket会把收到的数据包存在一个队列里,等待OnReceive()函数慢慢处理,也就是OnReceive()函数处理一个包,CAsyncSocket再次触发OnReceive()函数处理下一个包。这样的话如果OnReceive处理的慢了,等待处理的数据就会积累在他的缓冲区里。一个可以考虑的办法是自己建立缓冲区,把接收到的数据写入缓冲队列中,每次触发了OnReceive就另起一个线程把没有处理的数据处理掉。仅供参考! to 8OnReceive根本就不进入 写什么代码也是白搭的呀.....我的也是图像数据!!! 发送UDP包端 点对点发送数据包 在UDP包前还得加个ARP包 不理解这是怎么回事 按道理来说我程序接收某端口的UDP包 凡是UDP包都可接收啊 为什么要在开始加个ARP包 希望有人解释下 谁有XTP9601Lib.dll和XTP9601LibStaticd.lib给我一份。多谢! 求救~高手过来一下~~拿菜单窗口句柄,注意是窗口句柄 2006下半年的系统分析员考试多回报名? 【讨论】GDI+,分层窗口(LayeredWindow)的技术特点以及应用 郁闷!!!!没有邮件内容 救急,找几个好用的控件 关于线程池的问题 想认识一下上海的程序员,我的QQ号是: 361029 怎样编写FTP服务器端程序?源码? 太奇怪了?谁看过《Windows核心编程》的列举系统所有进程的例子?为什么会出错? 转换报错 完成端口 原代码,请高手看看,有错吗?
m_pUDPSocket->Create(m_Port, SOCK_DGRAM);//m_pUDPSocket为继承自CAsyncSocket的类的对象指针
OnReceive为m_pUDPSocket指向类成员函数监测工具监测到数据包时,系统没有调用m_pUDPSocket中的OnReceive()函数
IP和端口设置应该没有问题。这个也不是开始就不能用
具体表现为
OnReceive的响应次数一直在减少->现在的不响应。可能是过个年程序吃多了
CAsyncSocket接收时在自己缓冲区中保留一帧的情况。上一帧只有收到下一帧时才能读出来,而用网络侦听工具能确认上一帧已经收到了。
最后没法子换ACE了。。另外另一个用CAsyncSocket的程序,发现在send的时候明明没有发送出去,但是返回值却跟发送成功一模一样,换ACE代价太大,正在苦恼中借贵宝地一用,希望有人能解释一下,给个建议。。
CAsyncSocket会把收到的数据包存在一个队列里,等待OnReceive()函数慢慢处理,也就是OnReceive()函数处理一个包,CAsyncSocket再次触发OnReceive()函数处理下一个包。这样的话如果OnReceive处理的慢了,等待处理的数据就会积累在他的缓冲区里。
一个可以考虑的办法是自己建立缓冲区,把接收到的数据写入缓冲队列中,每次触发了OnReceive就另起一个线程把没有处理的数据处理掉。仅供参考!
OnReceive根本就不进入 写什么代码也是白搭的呀.....我的也是图像数据!!!