Ciao a tutti,
ho provato a svillupare un semplice client-server con Winsock che funziona in locale ma non su due diversi computer... Posto il codice, sperando che possiate aiutarmi!
Server:
------------------------------------codice:#include <iostream> #include <winsock.h> #include <string.h> using namespace std; int main() { short nPort = 2000; char message[256]; char szBuf[256]; int nRet; int nLen = sizeof(SOCKADDR); WORD wRequested = MAKEWORD(1,1); WSADATA wsaData; nRet = WSAStartup(wRequested,&wsaData); SOCKET xSocket; xSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); SOCKADDR_IN saServer; saServer.sin_family = AF_INET; saServer.sin_addr.s_addr = INADDR_ANY; saServer.sin_port = htons(nPort); nRet = bind(xSocket, (LPSOCKADDR)&saServer, sizeof(struct sockaddr)); SOCKADDR_IN saClient; loop: memset(szBuf, 0, sizeof(szBuf)); nRet = recvfrom(xSocket, szBuf, sizeof(szBuf), 0, (LPSOCKADDR)&saClient, &nLen); cout<< szBuf<< endl; memset(szBuf, 0, sizeof(szBuf)); cout<< "\t"; cin.get(message, 256, '\n'); while(cin.get() != '\n'); strcpy(szBuf, message); sendto (xSocket, szBuf, strlen(szBuf), 0, (LPSOCKADDR)&saClient, nLen); goto loop; closesocket (xSocket); WSACleanup(); system("PAUSE"); }
Client:
codice:#include <winsock.h> #include <iostream> #include <string.h> using namespace std; int main() { short nPort = 2000; char szBuf[256]; int nRet; int nLen = sizeof(SOCKADDR); int nLen2; char message[256]; WORD wRequested = MAKEWORD(1,1); WSADATA wsaData; nRet = WSAStartup(wRequested, &wsaData); // LPHOSTENT lpHostEntry = gethostbyname("camcatie"); SOCKET xSocket; xSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); SOCKADDR_IN saServer; saServer.sin_family = AF_INET; // saServer.sin_addr = *((LPIN_ADDR)*lpHostEntry->h_addr_list); saServer.sin_addr.S_un.S_un_b.s_b1 = 10; saServer.sin_addr.S_un.S_un_b.s_b2 = 0; saServer.sin_addr.S_un.S_un_b.s_b3 = 0; saServer.sin_addr.S_un.S_un_b.s_b4 = 1; saServer.sin_port = htons(nPort); loop: memset(szBuf, 0, sizeof(szBuf)); recvfrom(xSocket, szBuf, sizeof(szBuf), 0, (LPSOCKADDR)&saServer, &nLen); cout<< szBuf<< endl; cout<< "\t"; cin.get(message, 256, '\n'); while (cin.get() != '\n'); memset(szBuf, 0, sizeof(szBuf)); strcpy(szBuf, message); sendto(xSocket, szBuf, strlen(szBuf), 0, (LPSOCKADDR)&saServer, nLen); goto loop; closesocket(xSocket); WSACleanup(); system("PAUSE"); }![]()

Rispondi quotando
