Questo topic e' stato chiuso dal moderatore.
19/03/10 15:55
robrock80
Salve a tutti. Stò studiando i socket su windows e ho creato un progetto: sono riuscito a inviare i dati al server, ma non sò come ricevere la risposta da quest'ultimo (all'interno del codice ho indicato dove mi aspetto la risposta) poichè non ho un riferimento al socket del server e non sò neanche come ottenerlo. Vi posto il codice
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { char *webServer = "127.0.0.1"; int webPort = 80; SOCKET socket = initClientSocket(webServer, webPort); char buffer[256]; cout << "\n\n"; while(TRUE) { cout << "\tDigita comando\n\t\t"; cin.getline(buffer, BUFFER_LENGTH-1, '\n'); cin.clear(); cin.sync(); if (0 == strcmpi(buffer, "exit")) { break; } send(socket , buffer,lstrlen(buffer),0); //Qui dovrei ricevere una risposta } closesocket(socket); return 1; } SOCKET initClientSocket(char *pHost, int iPort){ struct sockaddr_in saClient; struct hostent *pHostinfo; SOCKET sock; WORD version; WSADATA WSAData; version=MAKEWORD(1,1); WSAStartup(version, &WSAData); if ((sock=socket(AF_INET,SOCK_STREAM,0))==SOCKET_ERROR){ return 0; } pHostinfo=gethostbyname(pHost); if (pHostinfo==NULL){ return 0; } saClient.sin_family=AF_INET; saClient.sin_addr=*((struct in_addr *)pHostinfo->h_addr); saClient.sin_port=htons(iPort); if (connect(sock,(struct sockaddr *)&saClient, sizeof(saClient))){ return 0; } return sock; }
Ultima modifica effettuata da robrock80 19/03/10 15:57
aaa