Ich möchte eine Server- und Client-Anwendung erstellen, die über Sockets mit GIO kommuniziert. GSocketService und GSocketClient scheinen für diesen Zweck perfekt zu sein, aber leider konnte ich keinen Tutorial- oder Beispielcode finden (den ein GLib, GIO, ... Neuling verstehen kann). Kennt jemand einige gute Ressourcen oder kann hier Beispielcode posten?
Ich habe es endlich geschafft, sowohl einen einfachen Server als auch einen Client mit glib und gio zu erstellen.
Mein Server sieht so aus:
und das ist der entsprechende Client:
%Vor%Beachten Sie jedoch, dass ich noch nicht mit glib, gio und sogar C vertraut bin, also überprüfen Sie meinen Code, bevor Sie ihn verwenden.
Der Callback von incoming sollte nicht blockieren, aus der Dokumentation von gio: "Der Handler muss die Verbindungsbehandlung initiieren, darf aber nicht blockieren; im Wesentlichen müssen asynchrone Operationen verwendet werden."
Ich hatte ein Problem mit der Verbindung in der asynchronen Version, es muss vom Benutzer verwiesen werden oder die Verbindung wird geschlossen, nachdem der eingehende Rückruf zurückkehrt.
Ein vollständiges Beispiel eines Servers, der nicht blockiert, basierend auf dem oben angegebenen Beispiel:
%Vor%