Pregunta

Esto debe ser realmente obvio, pero ¿cómo hago que un winsock escuche un puerto específico (¿recibe datos?) ¡No puedo encontrar un método que me permita hacerlo!

Lamento que esto sea probablemente tan obvio.

Estoy intentando crear una aplicación de chat, que obviamente se ejecuta en una configuración de servidor / cliente.

¿Fue útil?

Solución

Usted enlace , el zócalo, y luego escucha y aceptar conexiones. Descrito con más detalle en Introducción a WinSock . También hay una buena guía a los zócalos BSD, que también debe leer.

Para .NET, probablemente desee un Sistema. Net.Sockets.Socket (y son los métodos Bind / Listen / Accept / Send / Receive) en lugar de WinSock nativo, pero los conceptos son los mismos, por lo que dejaré todos los enlaces.

Otros consejos

Cuando usa sockets TCP que vincula, escucha y acepta y eventualmente recv. Puede encontrar algunos tutoriales en aquí o consulte la documentación oficial de MSDN.

La API winsock se basa en los sockets BSD de UNIX; entonces son muy muy similares. Puede que quieras averiguar eso. Un libro que he publicado recientemente es Programación de redes UNIX de Richard Stevens y él explica prácticamente todo lo que hay que saber sobre los enchufes.

También puede considerar ejecutar sus sockets en un hilo separado para mejorar la legibilidad y el rendimiento.

Editar: como para escuchar en un puerto específico; este es el parámetro sin.port de su estructura SOCKADDR_IN.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top