UDT::close后UDT::epoll_wait不到UDP数据将
最近项目用到UDT来建立点对点连接。
建立连接后测试发现一个很扯的问题。
假设有三个客户端A、B、C。三个客户端的都是同一个应用程序。程序中使用UDT::epoll_wait()等待有数据收发事件的UDT和UDP套接字。
下面是测试步骤:
(1) 首先A与B已经建立连接了(通过UDP打洞后),然后A、B相互收发数据。B关闭UDT连接(使用UDT::close())。
(2) 然后打开C,让C去连接A,这中间会有UDP数据传输打洞。测试发现两端的端口、地址都是正确的,且C能正常发出UDP数据,但是在A方用UDT::epoll_wait()等不到收到数据的UDP套接字。
还有就是,在B退出时用UDT::cleanup()也会出现这种情况。
相信使用UDT的朋友们在打洞、连接等遇到解决过很多问题,所以希望各位大侠支招。不胜感激!!!!!