绑定地址已使用C udp / tcp

时间:2015-09-09 17:40:06

标签: c sockets tcp udp bind

我正在尝试构建服务器,在此服务器中首先我必须接收UDP然后继续等待更多UDP消息,当我收到第一条UDP消息时,我需要创建TCP连接并等待客户端。 / p>

如果我等待UDP消息并且我从TCP开始,我的服务器工作正常,但我想使用fork,并且父亲等待更多的UDP消息,并且孩子从TCP部分开始,但是如果我这样做,我有一个绑定问题,因为它已经被UDP部分使用...所以..有一个解决方案吗?
有可能做我想做的事吗?

我希望你理解它。

非常感谢。

2 个答案:

答案 0 :(得分:1)

在同一端口上打开UDP和TCP套接字就可以了。例如,DNS适用于UDP 53和TCP 53端口。您应该在fork之前打开套接字,然后在子级中关闭它不需要使用的内容。

答案 1 :(得分:0)

UDP和TCP端口位于不同的空间。因此,您可以将一个套接字绑定到UDP / 8888,另一个套接字绑定到TCP / 8888没有问题。如果您的子进程正在尝试绑定到同一TCP端口,那么您可能会遇到问题。