重复的listen port引发的问题

Posted Coding, Thinking, Blogging

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重复的listen port引发的问题相关的知识,希望对你有一定的参考价值。

今天遇到一个奇怪的问题。另一个项目组的同事在进入跨服的时候出了问题,经过调试排查,发现是没有进入跨服,虽然已经成功在跨服申请创建了角色,但之后客户端似乎并没有请求进入。

由于同事说代码是没有改动的,那么原因可能是配置错误,或者客户端的问题。询问了一下,客户端的代码也没有改动。那么大概就是配置出了问题了。但我粗略排查了一下,并没有什么异常。此时已经有点灰心丧气了。但我还是打起了点精神,重新再次扫描了一遍跨服和原服的配置,突然发现,loginserver为user开的端口竟然一样。这很奇怪,这说明客户端可能想连接跨服的loginserver,然而却连接了原服的,那么自然就进不去跨服了。

我把端口改了后,果然正常了。

但是,为什么端口一样反而还能启动呢?对我来说,这是一个奇怪的现象。我在自己的电脑上也运行了两份loginserver,发现端口一样的确能够启动。于是我重新回顾了一下socket的学习笔记,并测试了bind函数。

结果却是不能同时开一样的端口,perror提示:Address already in use

这个测试代码见:https://github.com/demon90s/Beginning_Linux_Programming_CodeNote/blob/master/ch15_Sockets/example4/server.c

这只能找时间看看项目中网络模块的内部实现是如何的了。

以上是关于重复的listen port引发的问题的主要内容,如果未能解决你的问题,请参考以下文章

expressjs // module.exports 与 http.createServer [重复]

5672端口引发的一个大坑

server.listen(port, '127.0.0.1') 无法访问容器化节点服务器

为啥错误事件未处理?

httpd基本配置

net.tcp.listen和net.tcp.port的区别