不断重新加载页面时,web服务器返回“断管”错误

我找到了解决最后两个错误的部分方法,我所做的只是创建一个线程池,而不是创建新线程并在每个连接中终止它们。现在我没有这些奇怪的错误,但我有一个问题列在下面

我在raspberry pi上使用C web服务器,我能够处理多个web页面请求,但当客户端决定快速重新加载页面时,在几次重新加载后,web服务器崩溃,gdb向我发出错误:“No No No No modHFGen.dll;“断管”

以下是服务器的代码:https://hastebin.com/wuzepotiko.c

我认为问题可能在于读取错误处理,因为当我使用gdb时,它会给我错误:

线程13”;“网络服务器”;收到信号信号,管道破裂。
[切换到线程0xb161f440(LWP 23260)]
__libc_写入(nbytes=0,buf=0x22cc0<httpResponse>,fd=7)
在../sysdeps/unix/sysv/linux/write.c:26
26../sysdeps/unix/sysv/linux/write.c:没有这样的文件或目录。

我知道这是一大堆代码,但我已经在这上面呆了一段时间了。即使有人能给我指出正确的方向,我也会非常感激

我找到了这个问题的答案。由于write函数向内核发送了一个中断的管道错误,它告诉内核退出进程,所以我使用了send函数,它允许我阻止信号被发送到内核,现在它工作了!感谢所有帮助我解决问题的人

发表评论