Einfaches Netzwerk-App
-
Hallo.
Ich bin auf der suche nach einer einfachen Vorlage für ein Netzwerkprogramm mit dem Builder. Mit Google konnte ich nicht wirklich etwas für Borland finden, deswegen melde ich mich mal hier.
Ich habe bereits erfahren, dass schon die Komponente TClientSocket ausreicht, bloß habe ich überhaupt keine Ahnung wie ich damit umgehen soll. In der Hilfe steht etwas von einer Chat-Demo, jedoch kann ich diese nicht auffinden.
Wenn ich eine Direktverbindung zu einem anderen Netzwerkteilnehmer aufbauen will, brauch ich dann einen Server oder kann das auch ein Host regeln?
Kann mir bitte einer eine Vorlage zeigen wie ich zB einen einfachen Chat erstelle oder bestimmte Variablen übertrage.
Mfg Ape
-
Hallo,
unter http://www.c-plusplus.net/forum/p1759423#1759423 hatte ich mal das Chat-Demo als Source veröffentlicht.
Welche BCB-Version hast du denn? Du könntest auch mal auf der CD nachschauen.
P.S. Server und Client können auch ein und der selbe Rechner sein. Der Rechner der sich verbinden will (Client), braucht einfach nur die IP-Adresse des anderen (Server).
-
Also muss man praktisch seine eigene IP als server verwenden? brauche ich dazu eine weitere applikation für den server oder kann ich das auf einem formular verwalten?
ich schaue mir mal deinen link an, danke
-
Hallo
Ein Programm kann gleichzeitig Client- und Server-Funktionen anbieten, wenn du es so programmierst. Unabhängig ob mit oder ohne GUI-Form.
bis bald
akari
-
Also ich habe es jetzt geschafft, ein Verbindung zwischen Client und Server herzustellen (beide auf dem Selben Formular). Nun habe ich aber keine Ahnung wie ich Daten zum Server sende, und diese dann an die anderen Clienten verteile. Soweit ich weiß, kann man Strings ohne Probleme übertragen. Wie sieht es jedoch mit Objekten aus?
Könnt ihr mir vlt die Methoden sagen?
Mfg Ape
-
Was verstehst Du genau unter Objekten? Schau Dir dazu auch mal TFileStream an.
-
unter "Objekten" verstehe ich eigene klassen, die mehrere variablen und methoden beinhalten.
-
Hallo
Das geht mit C++ bzw VCL nicht so einfach. Entweder baust du dir selber ein Konvertierschema Klasse<->String, oder du suchst dir aus dem Netz ein bestehendes Verfahren. Stichwort ist Serialization.
Natürlich kannst du auch Binärdaten versenden, aber auch dort must du dir ein Protokoll auf Anwendungsebene entwickeln.bis bald
akari
-
akari schrieb:
Das geht mit C++ bzw VCL nicht so einfach.
Doch, gerade mit C++/VCL geht es sehr einfach. Wir hatten das erst neulich:
-
audacia schrieb:
akari schrieb:
Das geht mit C++ bzw VCL nicht so einfach.
Doch, gerade mit C++/VCL geht es sehr einfach. Wir hatten das erst neulich:
Allerdings muss man dazu seine eigene Klasse von TComponent ableiten, und ob man das will ist mehr als zweifelhaft. Für die Serialisierung mag das ja hilfreich sein, allerdings schleppe ich einen riesigen Overhead mit mir rum, der mir auch noch zusätzliche Einschränkungen auferlegt (Stichwort: Heapallokation und Kopiersemantik).
-
Hallo
audacia schrieb:
akari schrieb:
Das geht mit C++ bzw VCL nicht so einfach.
Doch, gerade mit C++/VCL geht es sehr einfach. Wir hatten das erst neulich:
Auch dieses Verfahren erfordert eben manuelle Programmierung : von TComponent ableiten und die Registrierung jeder einzelnen in Frage kommenden Klasse.
Desweiteren ist mir nicht klasr, ob diese Variante auch bei Eigenschaften funktioniert, die nicht auf TComponent aufgebaut sind. Also ob zum Beispiel auch ein std::vector<int> als Member korrekt übertragen wird.bis bald
akari
-
also Daten einer Komponente könnte ich theoretisch dann ohne Probleme versenden.
Könnte mir vielleicht einer zeigen wie ich das machen muss? Ich möchte die Items einer Listbox über den Server an alle Connections verteilen, damit die Clienten diese dann einlesen.
-
Kann mir denn keiner ein paar Zeilen hinschreiben, mit welchem Stream-Typ ich Komponenten schreibe, diesen an einen anderen Clienten leite und der dort in die Komponente wieder eingelesen wird.
Ich versuche ein Zeichenbrett über das Netzwerk zu programmieren. Die Image-Komponente soll permanent übertragen werden.
Kann mir da denn wirklich keiner helfen?
-
Ape schrieb:
Kann mir da denn wirklich keiner helfen?
Du mußt dir schon auch selbst helfen. Ich habe da einen Link zu einem Thread gepostet, in dem auf allerhand Beispielcode verlinkt wurde.
Was akari und DocShoe sagen, ist natürlich richtig. Aber ich denke nicht, daß du dir bei kleinen Programmen über so etwas wie Overhead Gedanken machen mußt.