ciao!!
ho un problema di comunicazione tra un socket-server fatto in VC++ e un client fatto in C#.
scrivo qua perchè penso che il problema sia più client
molto banali entrambi.
questo il server:
questo il client:codice:UINT Server::initConnection() { cout << "SERVER STARTED. PRESS ENTER EXIT" << endl; WSADATA wsaData; sockaddr_in local; sockaddr_in from; int wsaret = WSAStartup(0x101, &wsaData); int fromlen = sizeof(from); if(wsaret != 0) { return 0; } local.sin_family = AF_INET; // ADDRESS FAMILY local.sin_addr.s_addr = INADDR_ANY; // WILD CARD IP ADDRESS local.sin_port = htons((u_short) 20248); // PORT server = socket(AF_INET, SOCK_STREAM, 0); if (server == INVALID_SOCKET) { return 0; } if (bind(server, (sockaddr*) & local, sizeof (local)) != 0) { return 0; } if (listen(server, 10) != 0) { return 0; } while(true) { char temp[512]; inAscolto = accept(server, (struct sockaddr*) &from, &fromlen); sprintf_s(temp, "YOUR IP IS: %s", inet_ntoa(from.sin_addr)); send(inAscolto, temp, strlen(temp), 0); cout << "CONNECTION FROM " << inet_ntoa(from.sin_addr) << endl; } }
in pratica, se mi connetto al server tramite telnet ricevo il messaggio, e quindi posso supporre che funzioni.codice:public void socketConnection() { Socket socketClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socketClient.Connect("localhost", 20248); }
mentre se mi connetto in C# nn ricevo nulla e il programma esce subito senza errori.
secondo voi dove sto sbagliando???

Rispondi quotando