Ich muss schnell eine sehr kleine C oder C++ TCP Server/Client-Lösung implementieren. Dies ist einfach, um buchstäblich eine Reihe von Bytes von einem Computer zu einem anderen zu übertragen - muss nicht skalierbar/übermäßig kompliziert sein. Je einfacher, desto besser. Schnell und schmutzig, wenn du kannst.Was ist ein einfaches C oder C++ TCP Server und Client Beispiel?
Ich habe versucht, den Code aus diesem Tutorial zu verwenden, aber ich konnte es nicht g ++ in Linux zu bauen erhalten zu verwenden: http://www.linuxhowtos.org/C_C++/socket.htm
Wenn möglich, ich 3rd-Party-Bibliotheken vermeiden möchten, wie das System I Ich laufe darauf ist ziemlich eingeschränkt. Dies muss C oder C++ sein, da die vorhandene Anwendung bereits implementiert ist.
Dank emg-2 ‚s Antwort, konnte ich das oben genannte Codebeispiel kompatibel mit C machen ++ mit den folgenden Schritten:
diese Header In dem Client und Server:
#include <cstdlib>
#include <cstring>
#include <unistd.h>
Ändern Sie in server.c den Typ von clilen zu socklen_t.
if (connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0) { ... }
zu:
if (connect(sockfd,(const sockaddr*)&serv_addr,sizeof(serv_addr)) < 0)
Danke - Ich habe ein Beispiel gefunden (http://beej.us/guide/bgnet/output/html/multipage/clientserver.html#simpleserver), aber ich bin mir nicht sicher Wenn es übertrieben ist, brauche ich wirklich diesen ganzen Code? –
@ nickbolton2705: Wahrscheinlich, ja. Beejs Code enthält eine Fehlerbehandlung, was ein Teil des Grundes ist, warum ich es so sehr mag. Beachten Sie außerdem, dass der Server mehrere gleichzeitige Verbindungen sowie IPv4 und IPv6 unterstützt. –
Ja, das wäre großartig für eine elegante Lösung - ich bemerkte, dass eine der Funktionen Serialisierung ist, die für mich nützlich sein könnte, sollte ich dies irgendwann richtig implementieren müssen. –