执行 C 套接字程序时地址已被使用

发布于 2024-10-16 18:21:50 字数 202 浏览 2 评论 0原文

大家好,
在运行套接字程序(服务器端)时,我收到类似

地址已在使用中的

消息我正在尝试连接到端口 80,因为端口 80 是为 https 应用程序保留的所以在运行服务器端程序之前,我要关闭所有使用 https 应用程序的应用程序,是吗?足够的... 或者我做错了?

我正在尝试在浏览器和终端之间进行通信......

Hii All,
While running a socket programme (server side ) am getting message like

Address already in use

Am trying to connect to port 80 since port 80 is reserved for https application So before running server side programme i am closing all application that uses https application ,is it enough...
or am doing it wrong??

Am trying to make a communication between browser and termial...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

﹉夏雨初晴づ 2024-10-23 18:21:50

您必须以 Linux 上的超级用户 (root) 或 Windows 上的管理员权限运行应用程序,才能绑定到端口 80。所有服务端口都是如此,<80> 1024.要么是这个,要么还有另一个程序绑定到该端口。

尝试使用 netstat 找出哪些程序可能正在侦听端口 80。

示例:

在 Linux 上

netstat -punta

: Windows:

netstat -ban

两者都必须以超级用户/管理员权限运行才能查看绑定到特定端口的程序名称。

You must run your application as super user(root) on Linux or administrator privileges on Windows in order to bind to port 80. This is the case for all service ports, which is < 1024. Either that or there still is another program binded to that port.

Try using netstat to find out what programs might be listening on port 80.

Example:

on Linux:

netstat -punta

on Windows:

netstat -ban

Both must be run with super user/admin privileges in order to see the program names that bind to specific ports.

野侃 2024-10-23 18:21:50

如果您刚刚关闭了侦听 80 端口的另一个进程,则该端口将被阻止一段时间,具体取决于您的操作系统。此行为是为了防止攻击者使您计算机上的服务崩溃并立即在同一端口上重新启动恶意服务。

可以通过使用 SO_REUSEADDR 禁用此行为(通过使用 setsockopt)。

如果您的主要问题是从自定义服务器到您的浏览器进行通信,您可以使用服务器中的任何端口来提供 HTTP(8080 是常见的),只需在 url http://server:port/ (即 http://本地主机:8080/)

If you just closed another process listening on 80 port, this port will be blocked for a certain timespan depending on your OS. This behavior is here to prevent an attacker to crash a service on your machine and immediately restart a malicious service on the same port.

This behavior can be disabled by using SO_REUSEADDR (by using setsockopt).

If your main problem is to communicate from a custom server to your broswer, you can use any port in your server for providing HTTP (8080 is common for that), just specify the port in the url http://server:port/ (ie. http://localhost:8080/)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文