当前位置: 技术问答>linux和unix
udp用select模型收到了不应该收到的东西
来源: 互联网 发布时间:2016-02-25
本文导语: 一个c/s程序,用udp实现网络传输,传输数据量比较大,两端都用select方式,当select到另一端发来的信号时启动接收线程进行接收.现在的问题是,当正常传输了一段时间后(数据量大小不一定),某一端会无端收到信号(select函数...
一个c/s程序,用udp实现网络传输,传输数据量比较大,两端都用select方式,当select到另一端发来的信号时启动接收线程进行接收.现在的问题是,当正常传输了一段时间后(数据量大小不一定),某一端会无端收到信号(select函数返回并进入if (FD_ISSET(m_socket, &fdset)) {...}执行),而此时另一端并没有发送任何东西。不知哪位高手遇到过类似问题。困扰我快半个月了,如蒙见教,不胜感激涕零之至!
|
需要加数据校验的.判断一下是不是自己的数据.
网络上有时候是会收到乱七八糟的包....
|
还有一个可能是你接收有问题,对于UDP,稳健的接收也许是一次接收一个完整包,而不分头-body接收
|
你用ethereal或者sniffer工具监听一下端口,看数据到底从哪里来的
|
启动接收线程进行接收?
有没有线程同步的问题?
有没有线程同步的问题?