Welche Cross Plattform fähige Netzwerk API/Library könnt ihr mir für eine GTK 2.x Anwendung empfehlen?
-
Hallo,
Ich will ein kleines Programm mit GTK+ 2.x schreiben
und suche jetzt noch etwas passendes für die Netzwerkfunktionen.Bei der Qt Library ist so etwas ja schon alles dabei,
nur, was nimmt man bei GTK+ 2.x?Ich dachte zuerst an irgendwelche Gnome Bibliotheken (z.b. Gnome-VFS),
aber das Programm sollte später auch mal unter Windows laufen was
die Verwendung von Gnome spezifischen Bibliotheken ja doch sehr stark einschränkt bis unmöglich macht.
-
Man kann auch Qt und Gtk mischen.
-
ich weiss ja nicht was genau du brauchst, aber GTK dependet auf der Glib
und vielleicht kannst du mit deren IO-channels was anfangen:http://developer.gnome.org/doc/API/2.0/glib/glib-IO-Channels.html
-
Danke für den Tipp, ich würde mir die IO-channels mal genau anschauen,
gibt es darüber vielleicht etwas ausführlichere Informationen?
Z.b. Beispielcode, Tutorials?
Die Referenz allein ist schon recht dünn.Ich möchte Qt bei meinem Programm nicht verwenden.
-
webmässig hab ich da nix zur hand.
ich kann mal zuhause rumkruschteln ob ich noch ein paar codeschnipsel
finde.hatte das seinerzeit mal für FIFO-IPC benutzt.
was krieg ich auf die schnelle aus dem kopf noch hin:
die channels erlauben dir Sockets, FIFOs, usw aus einer eventloop
heraus zu pollen, bzw., die loop wirft nen callback wenn z.b. daten
am Socketz, FIFO ankommen.du brauchst eine g_main_loop als zentrale event-loop
erzeugst dir einen g_io_channel_unix_new () wo du den FD deines
FIFO, socket, whatever übergibst.mit g_io_channel_add_watch() hängst du den io_channel in die
loop mit entsprechender konfiguration per übergabeparameter,
je nachdem was du haben willst.wenn die übergebene condition eintrifft wird die callback-function
aufgerufen.einigermassen klar ?
-
Ja, so in etwa, ich werde da mal etwas herumprobieren, danke.
Nur noch ne Frage, die g_io_channel_unix_new() Funktion, ist die nicht unix spezifisch? Was nehm ich da für Windows?
-
ja schätze auch mal, dass wo UNIX draufsteht UNIX gemeint ist.
ich hab das auch nur unter Linux benutzt. Für win soll man
g_io_channel_new_file() benutzen, ausserdem steht in der ref., win support
is partially, was immer das heisst.da musst du selber mal ein wenig stöbern. von win hab ich echt keine ahnung.