当前位置: 技术问答>linux和unix
udp socket和tcp的有什么冲突吗?
来源: 互联网 发布时间:2015-06-15
本文导语: 我在我的程序里加了一段udp获取dns的代码. 这个模块单独跑功能正常. 但是我的程序中预先bind了4000个socket,udp的模块就不起作用了, 抓包发现,根本没有发出udp请求. 把预bind的socket降到10个,就没有问题了. 请问这是怎么...
我在我的程序里加了一段udp获取dns的代码.
这个模块单独跑功能正常.
但是我的程序中预先bind了4000个socket,udp的模块就不起作用了,
抓包发现,根本没有发出udp请求.
把预bind的socket降到10个,就没有问题了.
请问这是怎么回事?
这个模块单独跑功能正常.
但是我的程序中预先bind了4000个socket,udp的模块就不起作用了,
抓包发现,根本没有发出udp请求.
把预bind的socket降到10个,就没有问题了.
请问这是怎么回事?
|
a)udp_so=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);不对,第三个参数必须设置为0。
我也迷惑。bind3000个行吗?
我也迷惑。bind3000个行吗?
|
ulimit -n看看对描述符的限制。
|
没有冲突的,我也认为是文件描述符数目的限制。
|
用udp时哪里报错?
|
gethostbyname不是线程安全的,不过也不应该出现你说的问题。换gethostbyname_r()试试。
|
gethostbyname不是线程安全的,不过也不应该出现你说的问题。换gethostbyname_r()试试。
|
少bind几个就可以吗?
|
应该是描述符的限制
一个进程一般最多只能打开1024个描述符
一个进程一般最多只能打开1024个描述符