Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么客户机响应webserver';有什么消息吗?_C_Linux_Sockets_Http_Server - Fatal编程技术网

C 为什么客户机响应webserver';有什么消息吗?

C 为什么客户机响应webserver';有什么消息吗?,c,linux,sockets,http,server,C,Linux,Sockets,Http,Server,我制作了一个简单的linux套接字Web服务器,并观察了它的http流量。通常,当它将HTTP 200或404发送回请求GET或POST客户端(web浏览器或扫描仪)时,客户端会回显服务器刚刚发送回它的消息。为什么他们会这样做?他们希望从我的服务器得到什么答案 使用37.236.190.20:39889建立新连接0 从37.236.190.20:39889收到新消息0 GET/HTTP/1.1 连接:保持活动保持活动:300 用户代理:Mozilla/5.0(Windows NT 10.0;Wi

我制作了一个简单的linux套接字Web服务器,并观察了它的http流量。通常,当它将HTTP 200或404发送回请求GET或POST客户端(web浏览器或扫描仪)时,客户端会回显服务器刚刚发送回它的消息。为什么他们会这样做?他们希望从我的服务器得到什么答案

使用37.236.190.20:39889建立新连接0

从37.236.190.20:39889收到新消息0

GET/HTTP/1.1 连接:保持活动保持活动:300 用户代理:Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHT ML,像壁虎)铬/63.0.3239.132狩猎/537.36 主持人:18.231.188.211

已成功将文件login.html发送到0 37.236.190.20:39889 | nsent=550

从37.236.190.20:39889收到新消息0

HTTP/1.1200ok 连接:关闭 内容长度:465 内容类型:text/html

[我在这里发送的html页面]

已成功将文件login.html发送到0 37.236.190.20:39889 | nsent=550

带有37.236.190.20:39889的接头0已强制关闭。原因:回声


由于我没有在任何地方找到任何此类行为的记录,在gdb的帮助下,我发现我使用了一个无符号变量来保存一个函数的返回值,该函数在出错时返回-1

msg_buffer.length = recv(connected[i].socket, msg_buffer.data, msg_buffer.size, 0);
if (msg_buffer.length < 0) { // no message
msg_buffer.length=recv(已连接[i]。套接字,msg_buffer.data,msg_buffer.size,0);
如果(msg_buffer.length<0){//没有消息
因此,第二行中的计算永远不会为真,消息的长度将为0xFFFFFFFFFFFF。但是,由于缓冲区保存了我以前发送的消息,并且没有收到新消息来覆盖该消息,因此客户端似乎在回显我的服务器。
谢谢大家的帮助。对于这个错误,我深表歉意。

有趣的是,你用什么来编写你的Web服务器?你用什么来连接你的网络?它是用C语言编写的,带有linux socketsOkay。我添加了相关的标签,这样人们就可以帮你了。你能编辑你用来回复和发送数据的代码吗?我想你有机会“这不是一个对这个问题很了解的人的回答。看看你是否对自己没有反应!”MartinMeeser笑了