Suche C++11 / C++ Socket Library

07/19/2013 11:37 Excepti0n#1
Hallo,

wie im Threadtitel zu entnehmen ist, suche ich eine möglichst leicht einzurichtende und möglichst in C++ / C++11 geschriebene Socket Library.
Am besten natürlich plattformübergreifend.

Die Library sollte eigentlich nur mehrere Clients von mir handhaben können, da ich vor habe einen Clientless Bot zu schreiben.

Was könnt ihr mir da empfehlen?

Ahja, falls noch jemand eine gute C++ Verschlüsselungs Library kennt mit MD5, immer her damit. :D
07/19/2013 12:09 Schlüsselbein#2
boost::asio und crypto++.
07/19/2013 13:16 Excepti0n#3
Quote:
Originally Posted by Schlüsselbein View Post
boost::asio und crypto++.

crypto++ bekomme ich einfach nicht unter Embarcadero C++ Builder eingebunden (MS Visual Studio klappt), haufenweise Linker Fehler oder sonstige Fehler in den Quelldateien von crypto++.

Und bei boost::asio ist mein Problem, das es einfach so groß ist und ich da keine Übersicht von habe.
Ich versuche jetzt mal was vernünftiges damit hinzubekommen, ich werde mich bei Problemen melden.
07/19/2013 13:31 Conrew#4
Hi,
ist zwar eigentlich nicht dafür gedacht aber SFML(Eigentlich eine Game Libary) ist sehr simpel im Socket/Netzwerk bereich und auch platform übergreifend
07/19/2013 15:11 Master674b#5
Quote:
Originally Posted by Excepti0n View Post
crypto++ bekomme ich einfach nicht unter Embarcadero C++ Builder eingebunden (MS Visual Studio klappt), haufenweise Linker Fehler oder sonstige Fehler in den Quelldateien von crypto++.

Und bei boost::asio ist mein Problem, das es einfach so groß ist und ich da keine Übersicht von habe.
Ich versuche jetzt mal was vernünftiges damit hinzubekommen, ich werde mich bei Problemen melden.
Du sagtest du möchtest eine C++11 socket library. Der Embarcadero Compiler kann das doch gar nicht? Außerdem wer nimmt schon den Müll?
07/19/2013 15:51 Excepti0n#6
Quote:
Originally Posted by Master674b View Post
Du sagtest du möchtest eine C++11 socket library. Der Embarcadero Compiler kann das doch gar nicht? Außerdem wer nimmt schon den Müll?
Doch, nur der x86 Compiler supported C++11 (noch) nicht wirklich.
Und naja Geschmackssache, es gibt natürlich weit aus überlegenere Compiler, allerdings bin ich mit Embarcadero quasi aufgewachsen.
07/19/2013 16:01 Schlüsselbein#7
Und warum möchtest du nicht auf Visual Studio umsteigen? Ist einfach Nummer 1 für Windows und mit den meisten Libs hast du da drauf keine Probleme.

boost::asio ist afaik gar nicht so wirklich groß. Wie groß ist die .exe denn, wenn du asio inkludierst und gegen die benötigten Libs linkst?
07/19/2013 16:21 Excepti0n#8
Quote:
Originally Posted by Schlüsselbein View Post
Und warum möchtest du nicht auf Visual Studio umsteigen? Ist einfach Nummer 1 für Windows und mit den meisten Libs hast du da drauf keine Probleme.

boost::asio ist afaik gar nicht so wirklich groß. Wie groß ist die .exe denn, wenn du asio inkludierst und gegen die benötigten Libs linkst?
Bei boost::asio meine ich den Funktionsumfang, da habe ich keinen Überblick.
Die Dokumentation dort ist naja... :(

Visual Studio bietet mir keinen schönen GUI Designer.
Natürlich würde z.B. QT Abhilfe schaffen, allerdings ist QT auch nicht wirklich mein fall. Kann aber auch daran liegen, dass ich wiegesagt mit Embarcadero aufgewachsen bin.
07/19/2013 16:33 Schlüsselbein#9
Quote:
Bei boost::asio meine ich den Funktionsumfang, da habe ich keinen Überblick.
Die Dokumentation dort ist naja...
Man kann nicht alles haben und wenn du großes vor hast, solltest du auch auf eine solide Library wie asio zugreifen.
Die Dokumentationen von boost sind etwas gewöhnungsbedürftig, das stimmt. Aber die Beispiele zu boost::asio sind selbsterklärend und bringen mehr bei, als stures Doku-lesen.

Quote:
Visual Studio bietet mir keinen schönen GUI Designer.
Natürlich würde z.B. QT Abhilfe schaffen, allerdings ist QT auch nicht wirklich mein fall. Kann aber auch daran liegen, dass ich wiegesagt mit Embarcadero aufgewachsen bin.
Die VCL liegt weit hinter Qt und co. Wage den Absprung und du wirst es sicherlich nicht bereuen. Ausserdem bietet fast jedes GUI-Framework einen Designer.

Andere Frage: Warum überhaupt C++, wenn du sowieso mehr daran vorbei programmieren möchtest? Was genau möchtest du denn erreichen? Was für einen Bot? Vielleicht gibt es einfachere Alternativen.
07/19/2013 16:58 Excepti0n#10
Quote:
Originally Posted by Schlüsselbein View Post
Man kann nicht alles haben und wenn du großes vor hast, solltest du auch auf eine solide Library wie asio zugreifen.
Die Dokumentationen von boost sind etwas gewöhnungsbedürftig, das stimmt. Aber die Beispiele zu boost::asio sind selbsterklärend und bringen mehr bei, als stures Doku-lesen.


Die VCL liegt weit hinter Qt und co. Wage den Absprung und du wirst es sicherlich nicht bereuen. Ausserdem bietet fast jedes GUI-Framework einen Designer.

Andere Frage: Warum überhaupt C++, wenn du sowieso mehr daran vorbei programmieren möchtest? Was genau möchtest du denn erreichen? Was für einen Bot? Vielleicht gibt es einfachere Alternativen.
Ich weiß, die VCL ist kein (zumindest nicht wirkliches) C++ mehr.
Angenommen ich würde auf VS mit QT umsteigen, währe es dann auch nicht besser auf die Network Library von QT zu wechseln?
Ich sehe gerade das QT auch eine Crypto Klasse verfügt, alles was ich brauche. :)
Und bietet QT mir die Möglichkeit 3D Modelle oder Animationen in der GUI abzuspielen? (Nur Interessehalber)

Geht wie erwähnt um einen Clientless Bot für 'nen Online Game, sollte ebend mehrere Clients parallel handhaben können, Packets handlen und darauf reagieren.
07/19/2013 17:14 .SkyneT.#11
Quote:
Originally Posted by Excepti0n View Post
Und bietet QT mir die Möglichkeit 3D Modelle oder Animationen in der GUI abzuspielen? (Nur Interessehalber)
Ja, ist möglich. (Für beides werden auch schon Beispiele mitgeliefert)

Falls du auf Qt umsteigen willst, nimm die 4.8.x Version, die 5er ist Dreck.
07/19/2013 17:23 Schlüsselbein#12
Warum möchtest du dann nicht z.B. Python benutzen? Du ersparst dir damit viel arbeit und wenn es eine reine I/O-Anwendung ist, umso besser.
07/19/2013 17:34 Excepti0n#13
Quote:
Originally Posted by .SkyneT. View Post
Ja, ist möglich. (Für beides werden auch schon Beispiele mitgeliefert)

Falls du auf Qt umsteigen willst, nimm die 4.8.x Version, die 5er ist Dreck.
Warum?

Quote:
Originally Posted by Schlüsselbein View Post
Warum möchtest du dann nicht z.B. Python benutzen? Du ersparst dir damit viel arbeit und wenn es eine reine I/O-Anwendung ist, umso besser.
Weil ich mir dann z.B. die Syntax von Python anlernen müsste.
Ich versuche mich mal an der VS + QT Kombination, sobald ich weiß wieso die 5er Dreck sein soll. :D
07/19/2013 17:37 Schlüsselbein#14
Quote:
Weil ich mir dann z.B. die Syntax von Python anlernen müsste.
Womit du immernoch schneller wärst, als direkt in C++ zu programmieren. Die Programmiersprache ist das Werkzeug des Programmierers - für verschiedene Probleme gibts die passenden Sprachen (Werkzeuge). Jedenfalls gibts auch für Python Qt-Bindings, das müsstest du nur einmal lernen.

Aber ist natürlich deine Entscheidung.
07/20/2013 02:29 Padmak#15
Ich würde QT für nicht viel mehr als reine GUI verwenden, der Rest ist (meiner Meinung nach) eher zweckdienlich als funktionierend.
Nimm Qt + Crypto++ + boost::asio/Poco/Sonstige, dann hast du alles abgedeckt (obwohl ein clientless Bot für ein Game nicht wirklich 'ne GUI braucht, aber okay)
Und was Skynet sagte, stimmt. Qt 5 ist absoluter Müll, die setzen wesentlich weniger auf C++ als auf QML, das ist Dreck (um Skynet zu zitieren :P)

Padmak