Qu'est ce qu'un simple C ou C++ TCP du serveur et du client exemple?
J'ai besoin de mettre en place rapidement un très petit C ou C++ TCP client/serveur de la solution. C'est tout simplement de transférer littéralement un tableau d'octets à partir d'un ordinateur à un autre - n'a pas besoin d'être évolutive /compliqué. Le plus simple sera le mieux. "Rapide et sale" si vous le pouvez.
J'ai essayé d'utiliser le code de ce tutoriel, mais je ne pouvais pas le faire à construire à l'aide de g++ sous Linux: http://www.linuxhowtos.org/C_C++/socket.htm
Si possible, j'aimerais éviter 3ème partie les bibliothèques, comme le système que je suis en cours d'exécution ce est assez restreint. Ce doit être le C ou le C++ de l'application existante est déjà mis en œuvre.
Grâce à emg-2's réponse, j'ai réussi à faire le code mentionné ci-dessus de l'échantillon compatible avec le C++ à l'aide de la procédure suivante:
Ajouter ces en-têtes à la fois le client et le serveur:
#include <cstdlib>
#include <cstring>
#include <unistd.h>
Dans serveur.c, de changer le type de clilen à socklen_t.
int sockfd, newsockfd, portno/*, clilen*/;
socklen_t clilen;
Dans client.c, modifiez la ligne suivante:
if (connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0) { ... }
À:
if (connect(sockfd,(const sockaddr*)&serv_addr,sizeof(serv_addr)) < 0)
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé Beej Guide de Programmation du Réseau de dans le passé. C'est en C, pas du C++, mais les exemples sont bons. Aller directement à section 6 pour la simple client et le serveur les programmes d'exemple.
Si le code doit être simple, alors vous avez probablement demander C exemple traditionnelles à base de sockets BSD. Des Solutions comme
boost::asio
sont à mon humble avis assez compliqué quand il s'agit de court et simple exemple "hello world".Pour compiler les exemples que vous avez mentionné que vous devez apporter des solutions simples, parce que vous êtes la compilation sous compilateur C++. Je fais allusion à des fichiers suivants:
http://www.linuxhowtos.org/data/6/server.c
http://www.linuxhowtos.org/data/6/client.c
de: http://www.linuxhowtos.org/C_C++/socket.htm
Ajouter la suite comprend à la fois des fichiers:
Dans client.c, modifiez la ligne:
à:
Comme vous pouvez le voir en C++ un cast explicite est nécessaire.
essayer boost::asio lib (http://www.boost.org/doc/libs/1_36_0/doc/html/boost_asio.html) il y a beaucoup d'exemples.
Bien que de nombreuses an, clsocket semble vraiment une belle petite croix-plateforme (Windows, Linux, Mac OSX): https://github.com/DFHack/clsocket
Voici quelques exemples:
1) Simple
2) Fourche
3) les Threads
en fonction du serveur:
http://www.martinbroadhurst.com/server-examples.html