Domanda

Questo deve essere davvero ovvio, ma come posso fare in modo che un winsock ascolti una porta specifica (riceva i dati?) Non riesco a trovare un metodo che mi permetta di farlo!

Mi dispiace che questo sia probabilmente così ovvio.

Sto cercando di creare un'applicazione di chat, che ovviamente è in esecuzione in una configurazione server / client.

È stato utile?

Soluzione

vincola il socket, e quindi ascolta e accetta connessioni. Descritto più in dettaglio in Introduzione a WinSock . C'è anche una buona guida alle prese BSD, che dovresti leggere anche tu

Per .NET, probabilmente vuoi Sistema. Net.Sockets.Socket (ed è metodi Bind / Listen / Accept / Send / Receive) anziché WinSock nativo, ma i concetti sono gli stessi, quindi lascerò tutti i link.

Altri suggerimenti

Quando si utilizzano socket TCP che si associano, ascoltare e accettare e infine recv. Puoi trovare alcuni tutorial su qui o consultare la documentazione ufficiale MSDN.

L'API winsock si basa sui socket BSD di UNIX; quindi sono molto simili. Potresti voler esaminare questo. Un libro che ho recentemente è Programmazione di rete UNIX di Richard Stevens e lui spiega praticamente tutto quello che c'è da sapere sui socket.

Potresti anche considerare di far funzionare i tuoi socket in un thread separato per migliorare la leggibilità e le prestazioni.

Modifica: come per l'ascolto su una porta specifica; questo è il parametro sin.port della tua struttura SOCKADDR_IN.

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