多线程http服务器编写中遇到的问题

多线程http服务器编写中遇到的问题

1. 404响应报文报头未加空行却仍然能正确执行。

  • 错误原因

404的html文件中开头有两行空行,影响了报文的结构。所以能正常响应。

  • 解决办法

首部和正文之间添加空行

2. 不能产生并发请求。

  • 错误原因

pthread_create() 的最后一个参数传的是accept()返回值sock_fd的指针,由于新连接来的太快,线程还没有来得及使用sock_fd, sock_fd就被更改,所以后面的线程使用的是同一个sock_fd,而有一个线程使用完之后,sock_fd就被关闭,所以别的线程的sendfile会报bad file descriptor。

  • 解决办法

最后一个参数直接传值,这样传的值是sock_fd的临时拷贝,就不会产生线程之间相互影响的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值