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:处理服务器关闭的过早连接