用C语言写多线程http服务器,是什么时候需要关闭套接字?
我在学习http服务器的过程中遇到了一点困难。
我在accept到一个套接字的时候,新建了一个线程去和这个浏览器进行数据交换。
浏览器打开服务器的index.html会一下子请求许多张图片。
什么情况下可以close掉套接字?总不能一直连着把?
我的index.html里面的图片,如果在网页里出现两次,则会下载不了。
我用printf打印下来了,发现服务器并没有收到这两个图片请求,
其他只有出现一次的图片都正常下载到了
可能哪里写错了。
请问这里应该注意哪些问题呢?
============================
更新:listenfd = socket() 这个套接字我是一直没关的。
但是clientfd = accept(); 这个套接字我用完就关掉了。以上问题就解决了。
但是听说http 1.1 是长连接,不需要关闭套接字的。我有点被搞蒙了。
请问真的不需要把clientfd给close掉么?如果真是这样,那么如何解决我上面出现的状况》?