Domanda

ho iniziato ad imparare legare Winsock con C ++ e sto avendo alcuni problemi. Ho iniziato seguendo l'esempio Winsock su MSDN (un client-server di base). http://msdn.microsoft.com/en- us / library / ms738545 (v = vs.85) aspx

Quando costruisco ed eseguire il codice ottengo l'output:

Client.exe

14 byte inviati.
Connessione chiusa.

Server.exe

Non succede nulla nella finestra cmd Server.exe. Non ho idea di quello che sto facendo male. Sono nuovo di Winsock, ma per quanto mi chiamo dire nel file Server.cpp l'accetto () funzione non ritorna mai.

Tutti gli aiuto / puntatori sono apprezzati.
Grazie in anticipo, Tom.

Modifica Il codice può essere trovato sul sopra MSDN Link. Scorrere verso il basso sulla pagina per il codice per client e server.

È stato utile?

Soluzione

suona come il vostro client non è connesso al server. E 'collegato a qualcosa, ma forse non il server. Qui ci sono alcune cose che vorrei guardare:

  1. Hard-codice l'indirizzo IP del server nel client.

  2. Il server è in ascolto solo su IPv4 ma il cliente proverà sia IPv4 che IPv6. Dovrebbe essere ok, ma vi consiglio di rimuovere ambiguità che in questa fase. Nel client, in cui si dice che il cambiamento AF_UNSPEC che a AF_INET.

  3. Verificare se qualsiasi altra cosa è in ascolto sulla porta 27015 (forse su IPv6). Eseguire Netstat.exe per vedere quali prese sono in uso.

  4. L'utilizzo semplice vecchio telnet per connettersi al server. Se si collega, quindi digitare nulla e premere invio, e vedere come si comporta server.

  5. Sbarazzarsi della chiamata alla shutdown(ConnectSocket, SD_SEND) nel client. Dovrebbe essere OK, ma mi sembra un po 'insolito -. Non ho mai chiuso giù solo una direzione su un socket, ho sempre usare SD_BOTH quando io sono totalmente finito con la presa

  6. Sei in esecuzione entrambi i processi sulla stessa macchina, o c'è un proxy o un firewall in mezzo? Un proxy potrebbe accettare la vostra connessione client ma non riescono a connettersi al server, per esempio.

In bocca al lupo!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top