может есть у кого сабж? нужен просто пример (желательно консоль) для отправки данных на серв и получение ответа. Например логин на сайт и получение удачно\неудочно ... и в соответствии с этим выполняем действие... если у кого есть поделитесь
http://forum.sources.ru/index.php?showtopic=166220 посмотри и вот еще в исходниках валялось Code: #include <stdio.h> #include <winsock.h> // Function prototype void StreamClient(char *szServer, short nPort, char *szMessage); // Helper macro for displaying errors #define PRINTERROR(s) \ fprintf(stderr,"\n%: %d\n", s, WSAGetLastError()) //////////////////////////////////////////////////////////// void main(int argc, char **argv) { WORD wVersionRequested = MAKEWORD(2,0); WSADATA wsaData; int nRet; short nPort; // // Check for the host and port arguments // if (argc != 4) { fprintf(stderr,"\nSyntax: client ServerName PortNumber Message\n"); return; } nPort = atoi(argv[2]); // // Initialize WinSock and check the version // nRet = WSAStartup(wVersionRequested, &wsaData); // // Go do the stuff a stream client does // StreamClient(argv[1], nPort, argv[3]); // // Release WinSock // WSACleanup(); } //////////////////////////////////////////////////////////// void StreamClient(char *szServer, short nPort, char *szMessage) { printf("\nStream Client connecting to server: %s on port: %d", szServer, nPort); // // Find the server // LPHOSTENT lpHostEntry; lpHostEntry = gethostbyname(szServer); if (lpHostEntry == NULL) { PRINTERROR("gethostbyname()"); return; } // // Create a TCP/IP stream socket // SOCKET theSocket; theSocket = socket(AF_INET, // Address family SOCK_STREAM, // Socket type IPPROTO_TCP); // Protocol if (theSocket == INVALID_SOCKET) { PRINTERROR("socket()"); return; } // // Fill in the address structure // SOCKADDR_IN saServer; saServer.sin_family = AF_INET; saServer.sin_addr = *((LPIN_ADDR)*lpHostEntry->h_addr_list); // ^ Server's address saServer.sin_port = htons(nPort); // Port number from command line // // connect to the server // int nRet; nRet = connect(theSocket, // Socket (LPSOCKADDR)&saServer, // Server address sizeof(struct sockaddr));// Length of server address structure if (nRet == SOCKET_ERROR) { PRINTERROR("socket()"); closesocket(theSocket); return; } // // Send data to the server // char szBuf[256]; // strcpy(szBuf, "From the Client"); nRet = send(theSocket, // Connected socket szMessage, // Data buffer strlen(szMessage), // Length of data 0); // Flags if (nRet == SOCKET_ERROR) { PRINTERROR("send()"); closesocket(theSocket); return; } // // Wait for a reply // nRet = recv(theSocket, // Connected socket szBuf, // Receive buffer sizeof(szBuf)+1, // Size of receive buffer 0); // Flags if (nRet == SOCKET_ERROR) { PRINTERROR("recv()"); closesocket(theSocket); return; } // // Display the received data // printf("\nData received: %s", szBuf); closesocket(theSocket); return; }
это я так понял TCP/IP ? я не силен в С++ если можно то конкретно сорс по отправке ПОСТ на сервер. с меня +++, заранее спасибо
как вариант - посмотри вот это.. если не то и никто не скинет еще ченить , то когда прийду домой, скину исходник програмулины (писал для партнерки одной, там все и GET и POST) Code: #include <stdio.h> #include <string.h> #include <winsock2.h> #include <windows.h> #include <ctype.h> #define PORT 80 // Порт, через который идет подключение к серверу....21,80,25,110 и т.п. #define SERVERADDR "77.91.229.20" // Адрес сервера int main ( int argc, char* argv [ ] ) { WSADATA wd; char buff[10000]; char buff2[9000]= { "POST /member.php HTTP/1.0\r\n" "Host: www.haddan.ru\r\n" "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.13) Gecko/20080311 AdCentriaIM/1.7 Firefox/2.0.0.13\r\n" "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n" "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n" "Accept-Encoding: gzip,deflate\r\n" "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n" "Keep-Alive: 300\r\n" "Connection: keep-alive\r\n" "Referer: http://www.haddan.ru/\r\n" "Content-Type: application/x-www-form-urlencoded\r\n" "Content-Length: 33\r\n\r\n" "username=USER&passwd=PASS" }; printf ( "TCP Client \n" ); // ну, тут и так понятно if ( WSAStartup ( 0x202, &wd ) ) { printf ( " WSAStart error %d \n ", WSAGetLastError ( ) ); return -1; } SOCKET sock ; sock=socket ( AF_INET, SOCK_STREAM, 0 ); if ( sock < 0 ) { printf (" Socket ( ) error %d \n ", WSAGetLastError ( ) ); return -1; } sockaddr_in dest_addr; dest_addr.sin_family=AF_INET; //инет коннектинг dest_addr.sin_port=htons ( PORT ); //порт HOSTENT *hst; // хост if( inet_addr(SERVERADDR) != INADDR_NONE ) dest_addr.sin_addr.S_un.S_addr = inet_addr(SERVERADDR); else if( hst=gethostbyname ( SERVERADDR ) ) ( ( unsigned long * ) &dest_addr.sin_addr )[0]=((unsigned long** )hst->h_addr_list)[0][0]; else { printf( "invalid address %s \n", SERVERADDR ); closesocket( sock ) ; WSACleanup(); return -1; } if(connect( sock, (sockaddr *)&dest_addr, sizeof(dest_addr) )) { printf (" Connect error %d \n ", WSAGetLastError ( ) ); return -1; } //sprintf( buff2, "GET /room/func/mine.php HTTP/1.1\r\nHost: haddan.ru\r\nConnection: Close\r\n\r\n"); send( sock, buff2, sizeof(buff2), 0); recv( sock, buff, sizeof(buff)-1, 0 ); //for(int i=0; i < strlen(buff); i++) // if(isalnum(buff[i]) || buff[i] == '<'|| buff[i] == '>' || buff[i] == '/') printf("%s",buff ); // else // continue; printf("\n"); printf ("Connection with %s succesfully. quit - quit" , SERVERADDR ); //int nsize; /*while( ( nsize = recv( sock, buff, sizeof(buff)-1, 0 ) ) != SOCKET_ERROR ) { buff[ nsize ] =0; printf ( " S=>C: %s ", buff ) ; printf ( "S<=C: " ) ; fgets ( &buff [0], sizeof( buff )-1, stdin ); if ( !strcmp ( &buff[0], "quit\n" ) ) { printf ( " Exit " ); closesocket ( sock ) ; //выход правильный WSACleanup() ; return 0; } send ( sock, &buff [ 0 ], nsize, 0 ) ; }*/ //printf ( " Recv error %d \n", WSAGetLastError ( ) ); //closesocket ( sock ) ; //WSACleanup ( ) ; return 0; }
юзайте curl и будет вам счастье. в комплекте с ним есть дофига исходников по применению каждой функции. Ну или если комактнее, и тока под винду, то юзайте WinInet
Ну дык ты отправляешь запрос, и получаешь этот самый ответ. Сам юзаю курл, доволен как слон. Главное подцепить его правильно =)