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;
}