erlang 报告错误“eaddrinuse”,但“netstat”或“lsof -i:port”中没有端口被占用

kd3sttzy  于 2022-12-08  发布在  Erlang
关注(0)|答案(2)|浏览(357)

{error_logger,{{2013,10,14},{12,31,31}},"Protocol: ~p: register/listen error: ~p~n",["inet_tcp",eaddrinuse]}
Can anyone give some advice. Thank you.

zzoitvuj

zzoitvuj1#

最有可能的情况是(假设该端口没有被其他程序使用),您的应用程序尝试侦听同一个端口两次。因此,第一次打开该端口进行侦听时,它会成功,第二次则会失败并返回错误。
我以前遇到过这种情况,所以尝试记录应用程序在成功和失败时所做的事情,以便更好地了解真实的的问题。
此外,由于没有提供示例代码或上下文,因此很难判断错误可能来自何处。

jtjikinw

jtjikinw2#

对于试图在同一台服务器上运行两个rabbitmq的人,不要在/etc/rabbitmq/rabbitmq. conf中取消注解两个具有相同端口的tcp端口。

listeners.tcp.default = 5700

## To listen on a specific interface, provide an IP address with port.
## For example, to listen only on localhost for both IPv4 and IPv6:
##
# IPv4
#listeners.tcp.local    = 127.0.0.1:5700
# IPv6
# listeners.tcp.local_v6 = ::1:5700

对于ipv4和ipv6,请更改端口,否则会出现eaddrinuse错误。

相关问题