社区
通信技术
帖子详情
请教关于http通信的问题`~`~
gggkso
2006-05-08 04:17:21
小弟我初学socket编程..写了一个用于http通讯的程序,但每次发送一次请求之后就不能再发第二次,即只有建立链接第一次发送和接收成功,不知是什么原因.请问如何能连续发送请求?
...全文
356
9
打赏
收藏
请教关于http通信的问题`~`~
小弟我初学socket编程..写了一个用于http通讯的程序,但每次发送一次请求之后就不能再发第二次,即只有建立链接第一次发送和接收成功,不知是什么原因.请问如何能连续发送请求?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zengwh
2006-07-15
打赏
举报
回复
不过我也看到有的浏览器能够一个socket多次进行HTTP请求,不知道采用何技术.
skyMountain
2006-05-22
打赏
举报
回复
“在同一个socket中连续多次发送和接收网页数据”
http协议设计的基本原则是:一次连接只做一件事情。
看似麻烦,实际上这个原则让服务器涉及简化了不知多少倍。
gggkso
2006-05-22
打赏
举报
回复
多谢mLee79,确实是百度的问题,另外我的代码也有些问题
while((byte_recv=recv(sockfd,txtread,1000,0))!=0)
printf("Recv:%d\n%s\n",byte_recv,txtread);
用这种方法接收数据常产生混乱,我改成加大txtread的大小一次读完了,应该还有更好的办法..
非常感谢各位的回答!!!
mLee79
2006-05-22
打赏
举报
回复
你的代码木有问题, 有问题的是 baidu , 它不支持保持连接哪有什么办法 ...
gggkso
2006-05-18
打赏
举报
回复
可能我说的不明白,我的意思是在同一个socket中连续多次发送和接收网页数据
RuoMu
2006-05-18
打赏
举报
回复
要想不断开连接就新建一个SOCKET
gggkso
2006-05-12
打赏
举报
回复
谢谢......有没有更好的办法(不close)?
我看ie访问站点的时候好像是不断开连接的
cangwu_lee
2006-05-12
打赏
举报
回复
先Close,在发送第二次。
gggkso
2006-05-11
打赏
举报
回复
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
char txtsend[1000]="GET / HTTP/1.1\nHost: www.baidu.com\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3\nAccept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\nAccept-Language: zh-cn,zh;q=0.5\nAccept-Encoding: gzip,deflate\nAccept-Charset: gb2312,utf-8;q=0.7,*;q=0.7\nKeep-Alive: 300\nConnection: keep-alive\n\n";
char txtread[1000]="";
int main(int argc,char *argv[])
{
BOOL bNoDelay = TRUE;
WSADATA ws;
SOCKET sockfd;
struct sockaddr_in client_addr;
struct hostent *host;
intbyte_recv;
WSAStartup(MAKEWORD(2,2),&ws);
if ((sockfd = socket(AF_INET,SOCK_STREAM,0))==INVALID_SOCKET)
{
printf("Create Socket Error\n");
return -1;
}
if(setsockopt(sockfd,IPPROTO_TCP,TCP_NODELAY,(char*)&bNoDelay,sizeof(bNoDelay))==SOCKET_ERROR)
{
printf("Erro Set");
}
host=gethostbyname(argv[1]);
client_addr.sin_family=AF_INET;
client_addr.sin_port=htons(80);
client_addr.sin_addr=*((struct in_addr *)host->h_addr);
if (connect(sockfd,(struct sockaddr *)(&client_addr),sizeof(client_addr))==SOCKET_ERROR)
{
printf("Connect Error\n");
return -1;
}
send(sockfd,txtsend,sizeof(txtsend),0);
while((byte_recv=recv(sockfd,txtread,1000,0))!=0)
printf("Recv:%d\n%s\n",byte_recv,txtread);
system("pause");
send(sockfd,txtsend,sizeof(txtsend),0);
while((byte_recv=recv(sockfd,txtread,1000,0))!=0)
printf("Recv:%d\n%s\n",byte_recv,txtread);
system("pause");
closesocket(sockfd);
WSACleanup();
system("pause");
return 0;
}
这是源代码,只有第一次Recv有内容...
C#串口转Socket带原码
VS2005串口转Socket
通信
带调试功能。
通信
帧按照电力规约进行封装。对上位机
通信
调试大有帮助.带源码。有
问题
随时
请教
:QQ 376033812 Email:xiaoligeng@126.com
请教
一个
问题
:关于 webrtc
通信
的
问题
在下是webrtc开发新手,...目前是用socket.io做
通信
开发目的: A同学向B同学发起请求,B同学收到请求后,A能观看B的视频直播。 如果有清楚的同学麻烦告知我哈,真的麻烦大家了 O(∩_∩)O~~
问题
描述: ...
5天Python闯关答疑训练营-直播答疑
#《5天Python闯关训练营》学习计划#挑战周期:11月4日—11月8日直播答疑:11.6号晚8点直播答疑,将学习难点可集中
请教
老师哦~11.4-11.8号为本课正式服务周期,期间遇到学习
问题
可社群
请教
,群内安排助教老师答疑
请教
大家一个
问题
(有关于
通信
行业 )
请教
大家一个
问题
(有关于
通信
行业 )
请教
大神!!关于实现voip
通信
媒体代理服务器的
问题
关于实现voip
通信
媒体代理服务器的
问题
没有任何程序,直接开始!! 我们计划搭建一套voip电话,以达到外网通过网页打、接电话的目的,包括手机、固话。 组网是: 前台webrtc 信令代理opensips+媒体代理rtpengine...
通信技术
4,356
社区成员
28,926
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章