用C语言写多线程http服务器,是什么时候需要关闭套接字?

chunksing 2015-11-28 01:48:46
我在学习http服务器的过程中遇到了一点困难。

我在accept到一个套接字的时候,新建了一个线程去和这个浏览器进行数据交换。

浏览器打开服务器的index.html会一下子请求许多张图片。
什么情况下可以close掉套接字?总不能一直连着把?

我的index.html里面的图片,如果在网页里出现两次,则会下载不了。

我用printf打印下来了,发现服务器并没有收到这两个图片请求,
其他只有出现一次的图片都正常下载到了

可能哪里写错了。

请问这里应该注意哪些问题呢?

============================
更新:listenfd = socket() 这个套接字我是一直没关的。
但是clientfd = accept(); 这个套接字我用完就关掉了。以上问题就解决了。
但是听说http 1.1 是长连接,不需要关闭套接字的。我有点被搞蒙了。
请问真的不需要把clientfd给close掉么?如果真是这样,那么如何解决我上面出现的状况》?
...全文
240 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kinkon007 2016-02-18
  • 打赏
  • 举报
回复
同一页面上的图片正常的浏览器只会请求一次的吧? 当数据接收或者发送完毕就可以close了
kaikaie123 2016-02-10
  • 打赏
  • 举报
回复
不需要关闭套接字指的是服务端吧。。。不关闭客户套接字怎么进行下一次传输啊。。
kinkon007 2016-01-27
  • 打赏
  • 举报
回复
图片的数据收完后就可以关闭了的啊

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧