我有一个服务端,使用UDP异步方式收发数据(在同一端口上异步收发),同时投递多个异步接收,数据吞吐量较大。
现在的遇到的问题是当第一次启动服务器时会正常运行一段时间(几小时不定),然后就会开始卡(卡几十秒然后又工作一会),感觉有点被像阻塞了,但却能断断续续工作。即时关闭服务端,重开一样是这种现象,除非重启服务器。
另外这个服务端是工作在VPS上,会有影响吗?
有高手指点一下吗,谢谢
检查下缓冲区是否清空、每次都已读完再清空,如果与到某一端比发送端的读取速度要快,这时候接收端的数据已读完并已经清空了,但是发送端还在继续发送的话就可能存在脏读,.net的底层存在这种情况,数据读取最好用while循环去读取,不要一次性读取多少个字节,一次性读取多少个字节在某些网络环境不佳的情况下就出现你那种问题了。