[Boost.Asio] Server und Clients gleichzeitig?
-
Hallo,
ich mag einen kleinen IRC-BNC programmieren. Das würde bedeuten, dass ich einerseits Verbindungen annehmen als auch aufnehmen muss. Ich wollte das ganze mit Boost.Asio asynchron machen.
Kann ich einfach so Client-Sockets und Server-Sockets mit einem io_service-Objekt verwenden? Oder muss ich 2 IO-Services verwenden? Wie kann ich dann eigentlich zwischen zwei sockets kommunizieren?
Danke schonmal für eure Bemühungen
Gruß pyromania
-
pyromania schrieb:
Kann ich einfach so Client-Sockets und Server-Sockets mit einem io_service-Objekt verwenden? Oder muss ich 2 IO-Services verwenden?
Bei der asynchronen Kommunikation könnte sogar ein Service reichen (keine 100% Garantie). Zur besseren Trennung würde ich allerdings vorschlagen, dass du zwei erstellst. Es ist schliesslich bei der Programmierung nicht das Ziel, so wenig wie möglich zu verwenden oder zu produzieren, sondern einen guten, stabilen und wartbaren Code zu erreichen.
pyromania schrieb:
Wie kann ich dann eigentlich zwischen zwei sockets kommunizieren?
Wenn du die Grundlagen von der Socketprogrammierung noch nicht kennst, dann würde ich dringend erstmal von Boost.Asio die Finger lassen! Boost.Asio verlangt ein gewisses Grundwissen, wenn man die Bilbiothek verstehen will.
Ein gutes Tutorial für die WinSocket Programmierung mit C, findet man bei www.c-worker.ch, bzw. genauer hier: http://www.c-worker.ch/winsock/index.php
Sockets sind im allgemeinen gleich. Wenn du die Tutorials bei C-Worker verstanden hast, dann kannst auch einen Umstieg auf Boost.Asio wagen. Im Hintergrund dabei aber auch nicht vergessen, dass man die Programmiersprache wechselt, nämlich von C zu C++.
Grüssli
-
Ich versteh die Grundlagen der Socketprogrammierung schon. Wahrscheinlich war meine Frage etwas unglücklich gestellt.
Ich meinte eher, wenn ich einen Socket hab, zu dem der User sich verbindet und einen Socket zum IRC-Server, wie wäre der Datenaustausch zwischen den beiden Sockets am elegantesten/einfachsten?
-
pyromania schrieb:
Ich versteh die Grundlagen der Socketprogrammierung schon. Wahrscheinlich war meine Frage etwas unglücklich gestellt.
Ich meinte eher, wenn ich einen Socket hab, zu dem der User sich verbindet und einen Socket zum IRC-Server, wie wäre der Datenaustausch zwischen den beiden Sockets am elegantesten/einfachsten?
Dann versteh ich deine Frage immer noch nicht. Datenaustausch zwischen welchen Sockets genau? Datenaustausch über die Sockets oder in deinem Programm? Was verstehst du unter elegant und einfach? Was sind deine bisherigen Ansätze?
Grüssli
-
Ansätze noch keine, bin sozusagen noch am Planen. Das mit dem Austauschen hat sich auch erledigt ^^
Danke für deine Hilfe
-
pyromania schrieb:
Danke für deine Hilfe
Hab ich denn geholfen?

Naja, ok, gerngeschehen ...Grüssli