HTTP 服务器:连接被外部主机关闭

Posted

技术标签:

【中文标题】HTTP 服务器:连接被外部主机关闭【英文标题】:HTTP Server: Connection closed by foreign host 【发布时间】:2017-08-10 06:02:21 【问题描述】:

下载源文件后,我发现这个 HTTP 网络服务器正在在线运行(来源:Webserver)。 [文件位于网页底部。]

我尝试使用他们的 Makefile 编译它,但出现了一些错误,我只需要#include 一些额外的库。但是,一旦我编译并运行(使用 telnet 测试)

telnet localhost <port number>

我得到以下信息:

Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.

然后在大约 5 秒后显示以下内容:

Connection closed by foreign host.

我不确定编写它的人是否仍在管理它,所以我想我会在这里问。关于为什么连接关闭的任何想法?

我在连接到 Unix 服务器的 Windows 机器上运行它,所以正如程序站点所述,它应该在 Unix 机器上正确运行。

【问题讨论】:

请参阅How to Ask -- 具体来说,关于包含minimal reproducible example 的部分。 【参考方案1】:

首先我们将使用此命令查看 ubuntu 系统日志

sudo gedit /var/log/syslog

如果你会看到这个错误“execv(/usr/sbin/tcpd) failed: No such file or directory” 然后运行这个命令

sudo apt-get install tcpd

它会解决你的问题(如果没有那么你需要在谷歌上搜索你的系统错误)

【讨论】:

【参考方案2】:

在文件中:reqhead.c

在函数中:Get_Request()

有一个定时呼叫select()

您可以更改超时值(当前为 5 秒) 或者将 timeout 参数替换为 NULL 参数(尽管替换为 NULL 意味着代码,一旦建立连接将永远等待。)

【讨论】:

以上是关于HTTP 服务器:连接被外部主机关闭的主要内容,如果未能解决你的问题,请参考以下文章

Bash Expect Telnet:处理服务器关闭的过早连接

无法将数据写入传输连接:现有连接被远程主机强行关闭

来自远程服务器的android telnet控制台端口5554:连接被外国主机关闭

现有连接被远程主机强行关闭

C# UDP 一个现有的连接被远程主机强行关闭

System.Net.Sockets.SocketException:'现有连接被远程主机强行关闭'