无法绑定到本地端口 - WSAEADDRINUSE

Unable to bind to local port - WSAEADDRINUSE

本文关键字:WSAEADDRINUSE 绑定      更新时间:2023-10-16

我们在Windows上有一个服务器应用程序,它无法在本地端口(3050)上绑定,从而给出错误WSAEADDRINUSE - Address already in use.

但是,我已经使用SysInternals Utility(TCPView)检查了没有进程正在侦听该端口。

请建议这背后的原因以及解决此问题的任何解决方法。

提前谢谢。

该错误情况将在两种情况下发生:

1) 另一个套接字已绑定到该地址

2) 绑定到该地址的套接字最近已关闭。

在第一种情况下,我想问题是您在同一程序中两次绑定到该端口号。

在第二种情况下,我假设您的程序的先前运行在测试前不到 120 秒退出或崩溃。当您运行TCPView时,已经过去了120秒。

如果您有权访问底层C++代码,则可以在调用bind()之前将setsockopt()与套接字上的参数SO_REUSEADDR一起使用。这将允许您的程序重新绑定到给定的端口,即使有一个来自先前程序运行的套接字"延迟"。