怎样用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协议啊? 展开
#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协议啊? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询