Pregunta

he empezado atar para aprender Winsock con C ++ y estoy teniendo algunos problemas. Empecé siguiendo el ejemplo de Winsock en MSDN (un cliente-servidor de base). http://msdn.microsoft.com/en- es / library / ms738545 (v = vs.85) .aspx

Cuando generar y ejecutar el código consigo la salida:

Client.exe

14 bytes enviados.
Conexión cerrada.

Server.exe

No ocurre nada en la ventana de cmd Server.exe. No tengo ni idea de lo que estoy haciendo mal. Soy nuevo en Winsock, pero por lo que yo llamo decir en el archivo Server.cpp la acepto () función nunca regresa.

Cualquier ayuda / punteros son apreciadas.
Gracias de antemano, Tom.

Editar El código se puede encontrar en la anterior MSDN Enlace. Desplazamiento hacia abajo de la página para el código de cliente y servidor.

¿Fue útil?

Solución

Parece que su cliente no se ha conectado al servidor. Está conectado a algo, pero quizás no sea su servidor. Aquí hay algunas cosas que me gustaría ver:

  1. código el dirección IP del servidor en el cliente.

  2. El servidor escucha sólo en IPv4, pero el cliente intentará IPv4 e IPv6. Debe estar bien, pero recomiendo la eliminación de la ambigüedad que en esta etapa. En el cliente, donde se dice que el cambio AF_UNSPEC que a AF_INET.

  3. Compruebe si todo lo demás está escuchando en el puerto 27015 (tal vez en IPv6). Ejecutar netstat.exe para ver lo tomas están en uso.

  4. Uso de telnet edad normal para conectarse a su servidor. Si se conecta, a continuación, escriba cualquier cosa y pulsa enter, para ver cómo se comporta el servidor.

  5. Deshacerse de la llamada a shutdown(ConnectSocket, SD_SEND) en el cliente. Debe estar bien, pero me parece un poco inusual -. Nunca cierro una sola dirección en un socket, siempre uso SD_BOTH cuando estoy totalmente terminado con la toma

  6. ¿Se está quedando ambos procesos en la misma máquina, o hay un proxy o un servidor de seguridad en el medio? Un proxy puede aceptar la conexión de cliente pero no pueden conectarse al servidor, por ejemplo.

Buena suerte!

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