只能传很小的文件,大的图片传不过去 大文件传输有问题 在实际测试中发现,当请求小文件,也就是调用一次writev函数就可以将数据全部发送出去的时候,不会报错,此时不会再次进入while循环。 一旦请求服务器文件较大文件时,需要多次调用writev函数,便会出现问题,不是文件显示不全,就是无法显示。 对数据传输过程分析后,定位到writev的m_iv结构体成员有问题,每次传输后不会自动偏移文件指针和传输长度,还会按照原有指针和原有长度发送数据。 根据前面的基础API分析,我们知道writev以顺序iov[0],iov[1]至iov[iovcnt-1]从缓冲区中聚集输出数据。项目中,申请了2个iov,其中iov[0]为存储报文状态行的缓冲区,iov[1]指向资源文件指针。
当linger设置为1,0的时候,收到对方close会直接返回RST报文,并且将当前发送缓冲区丢去 webbench在write的时候发现接收到的是RST报文,会立刻关闭连接,因为是短连接 webbench在调用read的时候,会收到RST报文,因此errno为Connection reset by peer 因此,会导致webbench压力测试全部失败