Seite 1 von 1

QT und RPC?

Verfasst: 22. August 2007 14:42
von Baz
Hi,

mich würde einfach mal interessieren welches RPC Framework ihr mit QT verwenden würdet. Ich möchte demnächst ein Projekt realisieren, bei dem ich gerne 2 Programme übers Netzwerk kommunizieren lassen würde. Ich habe mir schon verschiedene Sachen angeschaut, bin mir aber einfach nicht so sicher - für einen guten Tipp wäre ich dankbar :)

Verfasst: 22. August 2007 18:05
von BartSimpson
Wenn es über das Netz sein soll, kannst TCP nehmen und die Daten z.B. via XML austauschen.

Verfasst: 23. August 2007 10:36
von Baz
Ich würde lieber etwas Standardtisiertes nutzen in Richtung SOAP o.ä. - ich hatte mir mal ICE angeschaut, weil das Datenvolumen das übertragen wird sehr gering ist, dann aber festgestellt, dass ICE doch lustig teuer ist... Also irgendetwas in die Richtung wäre ganz praktisch, ich fände es ganz gut, wenn man sich nicht darum kümmern müsste wie die Sachen in XML verpackt werden.

Verfasst: 23. August 2007 12:37
von macman
Baz hat geschrieben:Ich würde lieber etwas Standardtisiertes nutzen in Richtung SOAP o.ä.
http://trolltech.com/products/qt/addon/ ... es/qtsoap/
Ist aber nur für die Kommerzversion verfügbar. Bisher zumindest, wäre nicht die erste Solution die Einzug in den normalen Qt-Code nähme.

Verfasst: 23. August 2007 13:09
von solarix
mit gSOAP (http://www.cs.fsu.edu/~engelen/soap.html) habe ich schon gute Erfahrungen (z.B. C++-Client unter Solaris mit VB.NET koppeln) machen koennen...

Verfasst: 23. August 2007 15:04
von Baz
also gSOAP hatte ich mir kurz angeschaut, da fand ich die Doku im ersten Moment etwas unübersichtlich - aber dann werd ich mir das nochmal genauer anschauen - hast du da vielleicht irgendwelche tutorials dazu?

Verfasst: 23. August 2007 17:32
von solarix
naja.. immerhin hat es doku (was man nicht von allen Softwareprojekten behaupten kann...)

Ein guter Einstieg ist z.B.
http://www.cs.fsu.edu/~engelen/soapmain.html#howto

Zugegebenermassen sollte man jedoch bereits eine Ahnung von WebServices haben, denn gSOAP liefert logischerweise nur die Doku zur Library, nicht zu SOAP-Services generell. Gute Einstiegsseiten findest du unter den Keywords "SOAP" und "WSDL" bei der Suchmaschine deiner Wahl.
Es ist jedoch keine Hexerei.. die RPCs werden auf XML-Basis ausgefuehrt und mit einer WSDL-Beschreibung (fuer die Clients) dokumentiert. Die gSOAP-Tools generieren aus dieser Beschreibung C-Code... das war's eigentlich auch schon..

hth,
solariX

Verfasst: 24. August 2007 07:18
von macman
SOAP ist brauchbar um verschiedene Programme miteinander kommunizieren zu lassen. Wenn ich beide Programme selber unter Kontrolle habe und auch nur die beiden miteinander was zu bereden haben, dann packe ich die Daten in einen String und verschicke sie über einen Socket. SOAP generiert da einiges an Overhead, den ich mir in dem Fall sparen kann.

Verfasst: 29. Oktober 2007 15:23
von Baz
Hiho,

ich hab mich letzten Endes für gSOAP entschieden, ich habe bisher nur ein großes Problem, ich bekomme es nur unter Linux kompiliert, unter windows aber nicht - ich weiß es gehört eigentlich nicht wirklich hier her, aber vielleicht hat jemand eine Idee. Ich wollte ein modifiziertes Makefile von meinem Projekt auf Linux nutzen (mit mingw o.ä.):

Code: Alles auswählen

GSHOME=D:/CPP/gsoap/
GSOAP=$(GSHOME)bin/soapcpp2
SOAPH=$(GSHOME)stdsoap2.h
SOAPCPP=$(GSHOME)stdsoap2.cpp
SOAPC=$(GSHOME)stdsoap2.c
CPP=g++
CC=gcc
LIBS=
COFLAGS=-O2
CWFLAGS=
CIFLAGS=-I$(GSHOME)
CMFLAGS=
CFLAGS= $(CWFLAGS) $(COFLAGS) $(CIFLAGS) $(CMFLAGS)
all: cpp
cpp: test.h test.cpp $(SOAPH) $(SOAPCPP)
	$(GSOAP) test.h
	$(CPP) $(CFLAGS) -o test test.cpp soapC.cpp soapClient.cpp $(SOAPCPP) $(LIBS)
Was könnte fehlen?

Gruß Baz