scusate secondo voi cosa c'è che non va nel seguente listato
che dovrebbe inviare a un host un comando http e ricevere da esso le informazioni stampandole a video (premetto sono molto inesperto di winsock e non programmo in C da una vita).
#include <windows.h>
#include <winsock.h> //includo le varie librerie tra cui quella winsock
#include <stdio.h>
#include <string.h>
int main()
{
SOCKET sock; // creo la socket chiamato sock che userò
nella connessione
struct sockaddr_in sock_addr; // inizializzo la socket
WSADATA data; // inizializzo la variabile che contiene le
primitive di Winsock
WORD p;
p=MAKEWORD(2,0); // creo la variabile p che contiene la
versione della wsock32.dll
WSAStartup(p,&data); // inizializzo la wsock32.dll
verificandone la mancanza di errori
char *comando = "GET / HTTP/1.0\r\nHost: 127.0.0.1\r\n\r\n"; //invio chiamata all host
char *mess; //variabile per la risposta
sock=socket(PF_INET,SOCK_STREAM,0); // creo la socket
indicandone le
caratteristiche
sock_addr.sin_family=PF_INET; // indico il protocollo
utilizzato (TCP/IP)
sock_addr.sin_port=htons(80); //indico la porta a cui
connettere la socket
sock_addr.sin_addr.S_un.S_un_b.s_b1=127; // indico
l'indirizzo IP
sock_addr.sin_addr.S_un.S_un_b.s_b2=0;
sock_addr.sin_addr.S_un.S_un_b.s_b3=0;
sock_addr.sin_addr.S_un.S_un_b.s_b4=1;
connect(sock,(struct sockaddr*)&sock_addr,sizeof(struct sockaddr)); // mi connetto all'indirizzo scelto
send( sock, comando , strlen(comando), 0); //invio comando
tramite protocollo http
recv(sock, mess, sizeof(char), 0); //ricezione dalla socket
della risposta
printf("%s", mess); //stamapa a video risultato
closesocket(sock); // chiudo la socket
WSACleanup(); //libero le risorse utilizzate dalla libreria Winsock
system("PAUSE");
return 0;
}