我在C中有一个基于libuv的UDP服务器,我们有一个:
bind()到端口9930。现在,当我向UDP服务器发送请求(src_port:A和dest_port:9930)时,服务器使用src_port:B和dest_port:A的UDP数据包进行响应。我希望B等于9930。
我在线浏览了一些文章,并在uv_udp_bind()中为主线程和4个工作线程设置了uv_udp_bind()标志。但是,现在udp服务器并不总是接受请求,甚至连接收回调都不会被调用。它有时是这样的,在这些情况下,流在端口B=9930中是合适的。
发布于 2015-08-28 16:16:56
现在,当我向UDP服务器发送请求(src_port:A和dest_port:9930)时,服务器用src_port:B和dest_port:A响应UDP数据包,我希望B等于9930。
然后,服务器必须从绑定到端口9930的套接字进行响应。例如,从接收请求的同一个套接字上进行响应。
此外,工作线程可以共享主线程打开的同一个套接字。当多个线程在同一个UDP套接字上接收时,只有一个线程获得数据报。多个线程在同一个UDP套接字上发送也是安全的。
https://stackoverflow.com/questions/32273181
复制相似问题