Necesito implementar rápidamente una pequeña solución de cliente/servidor C o C++ TCP. Esto es simplemente para transferir literalmente una matriz de bytes de una computadora a otra, no necesita ser escalable/demasiado complicado. Cuanto más simple, mejor. Rápido y sucio si puedes.¿Qué es un ejemplo sencillo de cliente y servidor C o C++ TCP?
He intentado utilizar el código de este tutorial, pero no pude conseguir que se construye usando g ++ en Linux: http://www.linuxhowtos.org/C_C++/socket.htm
Si es posible, me gustaría evitar las bibliotecas 3 ª parte, como el sistema de I Estoy ejecutando esto en es bastante restringido. Esto debe ser C o C++ ya que la aplicación existente ya está implementada.
Gracias a EMG-2 's respuesta, me las arreglé para hacer que el mencionado ejemplo de código compatible con C++ utilizando los siguientes pasos:
añadir estas cabeceras para el cliente y el servidor:
#include <cstdlib>
#include <cstring>
#include <unistd.h>
En server.c, cambie el tipo de clilen a socklen_t.
int sockfd, newsockfd, portno/*, clilen*/;
socklen_t clilen;
En client.c, cambie la línea siguiente:
if (connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0) { ... }
Para: impulso
if (connect(sockfd,(const sockaddr*)&serv_addr,sizeof(serv_addr)) < 0)
Gracias - Encontré una muestra (http://beej.us/guide/bgnet/output/html/multipage/clientserver.html#simpleserver) pero no estoy seguro si es excesivo, ¿realmente necesito todo ese código? –
@ nickbolton2705: Probablemente, sí. El código de Beej tiene incluido el manejo de errores, que es parte del motivo por el que me gusta tanto. También tenga en cuenta que el servidor admite múltiples conexiones simultáneas, e IPv4 e IPv6. –
Sí, esto sería genial para una solución elegante: noté que una de las funciones es la serialización, que podría ser útil para mí si tuviera que implementar esto correctamente en algún momento. –