请问linux下多个socket可以同时listen同一个端口吗

为什么我写的程序同时起2个listen之后返回的结果都是0,好歹应该第二个返回的是-1吧,而且用telnet访问这个端口的时候只有先启动的程序有接受到... 为什么我写的程序同时起2个listen之后返回的结果都是0,好歹应该第二个返回的是-1吧,而且用telnet 访问这个端口的时候 只有先启动的程序有接受到 展开
 我来答
ycsxm
2011-09-03 · TA获得超过3.3万个赞
知道大有可为答主
回答量:1.4万
采纳率:0%
帮助的人:7928万
展开全部
只允许一个应用诊听某端口。
追问
还有几个问题 不知道能不能回答我下,
1socket的listen 在使用前需要判断端口是否被占用吗(以防止listen已经被占用了的端口,那样做就没意义了,不是吗)
2如何能对已经被占用了端口进行释放(close(监听的socket)貌似不能释放掉已经被占用的端口,导致我的程序结束之后再运行就无法接受端口消息了)
追答
1.端口被占用,许多软件会报告端口已被占有,你再选一只备用端口;
2. 别人占用的资源,你是不能强行释放的;
Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
ttvast
2011-09-04 · TA获得超过374个赞
知道小有建树答主
回答量:253
采纳率:75%
帮助的人:136万
展开全部
应该不是在listen里面来决定端口是不是被占用的
而是在bind的时候.
bind如果在已经被占用的地址和端口上使用会抱错
EADDRINUSE
The given address is already in use.
如果你发现端口无法释放,可以在后续进程中bind之前调用setsockopt SO_REUSEADDR 1 来允许再次绑定相同端口
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
逯北Nm
2011-09-03 · TA获得超过347个赞
知道小有建树答主
回答量:172
采纳率:0%
帮助的人:147万
展开全部
这个叫端口复用,搜索一下吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式