WSAStartup(winsock_version,&wsadata))
lphostent=gethostbyname(host_name);
hsocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
saServer.sin_family = AF_INET;
saServer.sin_port = htons(80);
saServer.sin_addr = *((LPIN_ADDR)*lphostent->h_addr_list);
nRet = connect(hsocket, (LPSOCKADDR)&saServer, sizeof(SOCKADDR_IN));
char *lll="GET /XXX.php?getimg HTTP/1.1\r\nAccept: */*\r\nAccept-Language: zh-cn\r\nAccept-Encoding: gzip, deflate\r\nUser-Agent: Mozilla/4.0\r\n\r\n";
nRet = send(hsocket,lll,strlen(lll),0);
执行recv操作;
//这里成功;
nRet = send(hsocket,lll,strlen(lll),0);
执行recv操作;问题:这里nRet会等于0
请问是怎么回事?怎样才能在同一个连接上多次SEND和RECV?
lphostent=gethostbyname(host_name);
hsocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
saServer.sin_family = AF_INET;
saServer.sin_port = htons(80);
saServer.sin_addr = *((LPIN_ADDR)*lphostent->h_addr_list);
nRet = connect(hsocket, (LPSOCKADDR)&saServer, sizeof(SOCKADDR_IN));
char *lll="GET /XXX.php?getimg HTTP/1.1\r\nAccept: */*\r\nAccept-Language: zh-cn\r\nAccept-Encoding: gzip, deflate\r\nUser-Agent: Mozilla/4.0\r\n\r\n";
nRet = send(hsocket,lll,strlen(lll),0);
执行recv操作;
//这里成功;
nRet = send(hsocket,lll,strlen(lll),0);
执行recv操作;问题:这里nRet会等于0
请问是怎么回事?怎样才能在同一个连接上多次SEND和RECV?
解决方案 »
- 哪位高手能vc编程实现对无刷直流电机的控制吗?
- wcslen函数的问题
- -------------求指点MFC ActiveX控件--------
- 帮忙解释简单的语句!解答马上给分
- 高手请进,谈论一下当前最有钱挣的VC话题(P2P)!
- 一个HOOK挂入到另外一个程序中去,HOOK可以正常工作,但是HOOK程序不在当前窗口时,无法输出消息内容到日志文件中去.
- 鼠標問題
- 那位在珠海或去过的仁兄告诉我一下怎么从广州火车站总站到珠海呀?
- 编一个把整数转换成mmm,mmm,mmm格式字符的函数,例如:f(12345)->123,45.不能用inttostr()等函数,可以用operator函数,谢谢!
- 请问recordcount=0和Query.isEmpty有什么区别?
- 关于CImageList动态加载问题
- writefile写txt文件如何另取一行
执行recv操作;
//这里成功;
nRet = send(hsocket,lll,strlen(lll),0);
执行recv操作;
这里执行了两次发送啊,不是接收和发送,理论上也是可以的.你要看看你的服务器端是怎么做的.能不能连接收信息
还有 同一个连接上多次SEND和RECV?你是传输什么?如果文件的话,可以用多点传输。。
同一个连接上多次SEND和RECV 可以用多线程去解决
同一连接上多次recv和send不是很正常嘛?
你可以看下第2次发送后的异常, 按理说是没问题的,你换个HTTP地址请求试下
1.1版本开始支持保持连接(Keep-Alive),你必须在请求头中包含(Connection: Keep-Alive)保持连接不是强制性的,无论是服务器还是客户端都有权Close,因此如果要保持连接,你就必须对于套接字的事件(FD_CLOSE)进行处理你的问题是:
1、没有保持连接的指示;服务器一定不会保持连接,一个请求响应完成,无条件关闭
2、没有处理套接字的事件FD_CLOSE,你不知道服务器方已经关闭套接字,所以发送自然无法成功