- 论坛徽章:
- 0
|
详细代码就不写了,发送一个POST请求到apache服务器
发送:
sendlength=send(H_socket,sendbuf,strlen(sendbuf),0);
// printf("send length:%d\n",sendlength);
虽然没做检验,但是发送基本上没问题,用NC监听80时状态很稳定
接受代码1:
do
{
recvlength=recv(H_socket,tmpbuf,sizeof(tmpbuf),0);
strcat(recvbuf,tmpbuf);
}
while(recvlength>;0);
接受代码2:
recv(H_socket,recvbuf,sizeof(recvbuf));
发送缓冲是1024,接收临时缓冲是204800
具体状况表现为,简单的一次接收,就是2代码,可以顺利接收并且程序顺利执行下去,但是这只限接收数据一次,其实我知道apache遇到数据大的话会分段发送,所以使用循环接收代码,想接收全部的数据,但是使用循环代码得时候,程序就会卡住的接收这里无法继续,应该是跳不出循环吧,所以很郁闷了。。
看到别人写循环接收是while(recv(H_socket,recvbuf,sizeof(recvbuf))>;0){}
我的也差不多阿,而且我也尝试过这种。
假如我发送一个请求,apache返回多个结果,循环接收能否做到呢?(以前在win下我实现过),这里是不是需要更高级的select来实现?
先谢过了 |
|