📄 http.c
字号:
#include <winsock.h>
#include <stdio.h>
#include <string.h>
#pragma comment(lib, "ws2_32.lib")
#define PORT 80
#define LOCAL_PORT 19850
//提交的HTTP请求,具体格式和用法可参照RFC
char * send_buf="POST /webroot/news/?section=103&page=1&id=1670&specialid=0 HTTP/1.0\r\n"
"From: local\r\n"
"User-Agent: post_test/1.0\r\n"
"Content-Type: application/x-www-form-urlencoded\r\n"
"Content-Length: 20\r\n\r\n"
"type=12345&name=aaaa";
char receive_buf[1024];
void main(void)
{
WSADATA wsaData;//**************
int Ret ;//***************
SOCKET s;
char delay;
struct sockaddr_in server;
struct sockaddr_in local_addr;
server.sin_family= AF_INET;
server.sin_addr.S_un.S_un_b.s_b1=218; //WEB服务器的IP地址,可以在CMD下用PING命令得到
server.sin_addr.S_un.S_un_b.s_b2=30;//218.30.66.101为新浪的某个WEB服务器的地址
server.sin_addr.S_un.S_un_b.s_b3=66;
server.sin_addr.S_un.S_un_b.s_b4=101;
server.sin_port = htons(PORT);
local_addr.sin_family= AF_INET;
local_addr.sin_addr.S_un.S_un_b.s_b1=192; //这里把IP改成本机的IP即可
local_addr.sin_addr.S_un.S_un_b.s_b2=168;
local_addr.sin_addr.S_un.S_un_b.s_b3=1;
local_addr.sin_addr.S_un.S_un_b.s_b4=100;
local_addr.sin_port = htons(LOCAL_PORT);
if ((Ret = WSAStartup(MAKEWORD(1,1), &wsaData)) != 0)//************
{//************
printf("WSAStartup failed with error %d\n", Ret);//************
return;//***************
}//****************
s=socket(AF_INET,SOCK_STREAM,0);
if(bind(s,(struct sockaddr *)&local_addr,sizeof(local_addr))==SOCKET_ERROR)
printf("Binding socket failed!Error:%d\n",WSAGetLastError());
else printf("Binding %d.%d.%d.%d:%d...\n",local_addr.sin_addr.S_un.S_un_b.s_b1,local_addr.sin_addr.S_un.S_un_b.s_b2,local_addr.sin_addr.S_un.S_un_b.s_b3,local_addr.sin_addr.S_un.S_un_b.s_b4,LOCAL_PORT);
if(connect(s,(struct sockaddr *)&server,sizeof(server))==SOCKET_ERROR)
printf("Connecting socket failed!Error:%d\n",WSAGetLastError());
else printf("Connecting %d.%d.%d.%d:%d...\n",server.sin_addr.S_un.S_un_b.s_b1,server.sin_addr.S_un.S_un_b.s_b2,server.sin_addr.S_un.S_un_b.s_b3,server.sin_addr.S_un.S_un_b.s_b4,PORT);
if(send(s,send_buf,strlen(send_buf),0)==SOCKET_ERROR)
printf("Sending socket failed!Error:%d\n",WSAGetLastError());
else printf("Sended Message:%s\n",send_buf);
if(recv(s,receive_buf,1024,0)==SOCKET_ERROR)
printf("Receiving socket failed!Error:%d\n",WSAGetLastError());
else printf("Received Message:%s\n",receive_buf);
closesocket(s);
if (WSACleanup() == SOCKET_ERROR)//***************
{//****************
printf("WSACleanup failed with error %d\n", WSAGetLastError());//**********
}//**************
delay=getchar();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -