怎样用TCP实现HTTP协议?用TCP客户端连接到任意网站下载它的源码。(windows 环境下 c 或c++谢谢~) 10

#include<Winsock2.h>#include<stdio.h>#pragmacomment(lib,"wsock32.lib")//服务器端口号为80#def... #include<Winsock2.h>
#include<stdio.h>
#pragma comment(lib, "wsock32.lib")
//服务器端口号为80
#define DEFAULT_PORT 80
#define DATA_BUFFER 1024
void main(int argc,char *argv[ ])
{
WSADATA wsaData;
SOCKET sClient;
int iPort= DEFAULT_PORT;

//从服务器端接收的数据长度
int iLen;
//接收数据的缓冲
char buf[DATA_BUFFER];
//服务器端地址
struct sockaddr_in ser;
//判断输入的参数是否正确
if(argc<2)
{
//提示在命令行中输入服务器IP地址
printf("Usage:client [172.0.0.1]\n");
return;
}
//接收数据的缓冲区初始化
memset(buf,0,sizeof(buf));
if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)
{
printf("Failed to load Winsock.\n");
return;
}
//填写要连接的服务器地址信息
ser.sin_family=AF_INET;
ser.sin_port=htons(iPort);
//inet_addr( )函数将命令行的点分IP地址转化为用二进制表示的网络字节顺序的IP地址
ser.sin_addr.s_addr=inet_addr(argv[1]);
//建立客户端流式套接口
sClient=socket(AF_INET,SOCK_STREAM,0);
if(sClient==INVALID_SOCKET)
{
printf("socket( ) Failed:%d\n", WSAGetLastError( ));
return;
}
//请求与服务器端建立TCP连接
if(connect(sClient,(struct sockaddr*)&ser,
sizeof(ser))==INVALID_SOCKET)
{
printf("connect( ) Failed:%d\n", WSAGetLastError( ));
return;
}
else
{
//从服务器端接收数据
iLen=recv(sClient,buf,sizeof(buf),0);
if(iLen==0)
return;
else if(iLen==SOCKET_ERROR)

{
printf("recv( ) Failed:%d\n", WSAGetLastError( ));
return;
}
printf("recv( ) data from server:%s\n",buf);
}
这是原来的TCP怎么用他实现HTTP协议啊?
展开
 我来答
quepy
2012-05-07 · 超过23用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:39.7万
展开全部
这个,得看HTTP的协议,按照那个来实现。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式