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