| 启航-▲每天有个新的开始▲ |
|
|||
|
公告
日历
统计
导航 |
#include <stdio.h>
#include "winsock.h" #pragma comment(lib,"ws2_32.lib") #define winsock_version 0x0101 void main() { //If it works,it is written by masterz,otherwise I don't know who write it. SOCKADDR_IN saServer; LPHOSTENT lphostent; WSADATA wsadata; SOCKET hsocket; int nRet; const char* host_name="www.csdn.net"; char* req="POST /member/logon.asp 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: 34\r\n\r\n" "name=XXXXXX&pass=XXXXXXXXX&type=1"; //if you change xxx, you may have to change content-length correspondingly if(WSAStartup(winsock_version,&wsadata)) printf("can't initial socket"); lphostent=gethostbyname(host_name); if(lphostent==NULL) printf("lphostent is null"); hsocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); saServer.sin_family = AF_INET; // Use def. now, need to handle general case saServer.sin_port = htons(80); saServer.sin_addr = *((LPIN_ADDR)*lphostent->h_addr_list); nRet = connect(hsocket, (LPSOCKADDR)&saServer, sizeof(SOCKADDR_IN)); if (nRet == SOCKET_ERROR) { printf("can't connect"); closesocket(hsocket); return; } else printf("connected with %s\n",host_name); nRet = send(hsocket, req, strlen(req), 0); if (nRet == SOCKET_ERROR) { printf("send() failed"); closesocket(hsocket); } else printf("send() OK\n"); char dest[1000]; nRet=1; while(nRet>0) { nRet=recv(hsocket,(LPSTR)dest,sizeof(dest),0); if(nRet>0) dest[nRet]=0; else dest[0]=0; printf("\nReceived bytes:%d\n",nRet); printf("Result:\n%s",dest); } } 程序员问答社区,解决您的IT难题
|
![]() |
|
| Copyright © bighope | Powered by: 博客园 模板提供:沪江博客 |