Was ist ein einfaches C- oder C ++ TCP-Server- und Client-Beispiel?
Ich brauche, um schnell zu implementieren ein sehr kleines C-oder C++ - TCP-server/client-Lösung. Das ist einfach zu übertragen buchstäblich ein array von bytes von einem computer auf einen anderen - muss nicht skalierbar sein /über-kompliziert. Je einfacher, desto besser. Quick and dirty, wenn du kannst.
Ich habe versucht, den code aus diesem tutorial, aber ich konnte es nicht zu bauen mit g++ unter Linux: http://www.linuxhowtos.org/C_C++/socket.htm
Wenn möglich, möchte ich vermeiden, 3rd-party-Bibliotheken, wie system ich bin mit dieser auf sehr eingeschränkt ist. Dies muss in C oder C++ als die bestehende Anwendung implementiert ist.
Dank emg-2's Antwort habe ich es geschafft, die oben genannten code-Beispiel kompatibel mit C++ unter Verwendung der folgenden Schritte:
Fügen Sie diesen Header, um client-und-server:
#include <cstdlib>
#include <cstring>
#include <unistd.h>
In server.cändern Sie die Art der clilen zu socklen_t.
int sockfd, newsockfd, portno/*, clilen*/;
socklen_t clilen;
In client.cändern Sie die folgende Zeile:
if (connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0) { ... }
:
if (connect(sockfd,(const sockaddr*)&serv_addr,sizeof(serv_addr)) < 0)
InformationsquelleAutor der Frage Nick Bolton | 2009-03-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich verwendet habe, Beej ' s Guide to Network Programming in der Vergangenheit. Es ist in C, nicht C++, aber die Beispiele sind gut. Gehen Sie direkt zu Abschnitt 6 für die einfache client-und server-Beispielprogramme.
InformationsquelleAutor der Antwort Bill the Lizard
Wenn der code sollte einfach sein, dann sind Sie wahrscheinlich Fragen, für C Beispiel basiert auf der traditionellen BSD-sockets. Lösungen wie
boost::asio
sind imho ziemlich kompliziert, wenn es um die kurzen und einfachen "hello world" - Beispiel.Kompilieren Beispiele, die Sie erwähnt, müssen Sie einfache Korrekturen, weil Sie kompilieren unter C++ - compiler. Ich beziehe mich auf folgenden Dateien:
http://www.linuxhowtos.org/data/6/server.c
http://www.linuxhowtos.org/data/6/client.c
von: http://www.linuxhowtos.org/C_C++/socket.htm
Fügen Sie die folgende beinhaltet, um beide Dateien:
In client.cändern Sie die Zeile:
:
Wie Sie sehen können in C++ eine explizite Umwandlung erforderlich ist.
InformationsquelleAutor der Antwort
versuchen, boost::asio-lib (http://www.boost.org/doc/libs/1_36_0/doc/html/boost_asio.html) es haben viele Beispiele.
InformationsquelleAutor der Antwort bayda
Obwohl vor vielen Jahren, clsocket scheint eine wirklich nette kleine cross-Plattform (Windows, Linux, Mac OSX): https://github.com/DFHack/clsocket
InformationsquelleAutor der Antwort Erwin Coumans
Hier sind einige Beispiele:
1) Einfaches
2) Gabel
3) Threads
basierten server:
http://www.martinbroadhurst.com/server-examples.html
InformationsquelleAutor der Antwort Guy L