Datenaustausch über Netzwerk


melmager

Erfahrenes Mitglied
#1
Bevor ich anfange wild rumzuprogrammieren... :)

Ich möchte Daten zwischen 2 Rechnern austauschen - also Netzwerk :)
am liebsten würde ich die Daten in XML eintüten

HTTP und RSS fallen leider Aus da ich eine gleichwertige Verbindung in beide Richtungen brauche und eine möglichkeit Daten anzufordern von beiden Seiten benötige.

Die Datenpakete kommen Häppchenweise - vergleichbar mit einer SQL Abfrage.

Also eine Mischung von FTP (Infos holen und scheiben) bzw SQL (select / Insert)
und dat am besten in XML form.

Da warscheinlich nur DOM/SAX zur verfügeung steht denke ich mir das so:

also: Client baut eine Abfrage auf per XML (SAX) auf - übermittelt die Daten per Datagramm an Server
Server nimmt XML Datei entgegen - DOM drüber abfrage auswerten
dann Antwort Daten grade den umgekehrten Weg gehen.

Denk fehler zu sehen ? Ideen worauf ich noch aufbauen könnte ?
Muss ich mich noch mit irgenwelchen Techniken befassen z.B X-Modem
Ist eine Checksumm im Datenpaket sinnvoll ? - oder reicht eine profane Blocknummerierung oder eine ID Nummer in den Nachrichten ? nach dem Motto Anfrage nummer 0815 - antwort zu anfrage 0815
da ja wenn ich auf UDP aufsetze die Reihenfolge nicht wirklich sicher gestellt ist.

Hilfreiche Hinweise bitte hinterlassen :)
 

genodeftest

Erfahrenes Mitglied
#2
Wenn du Datenintegrität brauchst (Checksumme, Paketnummer, …) solltest du doch besser TCP nutzen, das ist dafür besser geeignet. Ist deine Anwendung so zeitkritisch, dass du unbedingt UDP brauchst?
An sonsten würde ich vom Prinzip her das gleiche machen.
HTTP wäre völlig OP, was du mit RSS anfangen willst, weiß ich nicht (das wird normalerweise nur genutzt, um Nachrichten per HTTP zu verbreiten, und zwar nur an menschliche Leser).
 

melmager

Erfahrenes Mitglied
#3
Wenn du Datenintegrität brauchst (Checksumme, Paketnummer, …) solltest du doch besser TCP nutzen, das ist dafür besser geeignet. Ist deine Anwendung so zeitkritisch, dass du unbedingt UDP brauchst?
An sonsten würde ich vom Prinzip her das gleiche machen.
HTTP wäre völlig OP, was du mit RSS anfangen willst, weiß ich nicht (das wird normalerweise nur genutzt, um Nachrichten per HTTP zu verbreiten, und zwar nur an menschliche Leser).
Nö Zeitkritisch ist das nicht wirklich - Ich bin nur deswegen erstmal auf UDP gelandet weil ja wenn ich bei DOM ansetze jedes XML Paket als einzelnen Datei handeln muss.
Sprich dann muss ich Java irgenwie klar machen das zwar eine Minidatei gekommen ist - den Stream also zu machen aber dann trotzdem den Netzwerk Soket offen lassen ...

dann lege ich mal mit Entwurf los :) und gehe über TCP und Soket

RSS habe ich nur desswegen aufgeführt da dort ja auch ein XML Datenformat vorliegt ...
 

melmager

Erfahrenes Mitglied
#4
So fürn Anfang habe ich mal ein Netzwerk echo System geschrieben

Client baut Verbindung auf - sagt Hallo
Server anwortet mit Server Hallo

jetzt hab ich ne Gewissensfrage - wer sagt nach dem Verbindingsaufbau zu erst was ?

Erstmal steige ich so ein das der Server zuerst was sagt - als bestätigung hier biste richtig

dann würde ich vom client aus erstmal ne anmeldung rübersenden ...

Verbindung aufgebaut:
Server : "<xmlnet/>" bedeutet anwesend
Client dann:
<xmlnet>
<auth>Ich bins dein Client</auth>
</xmlnet>

oder würdet Ihr zuerst den Client was senden lassen?
Nachteil der Client hat keine Verbindungsbestätigung - Vorteil für Hacker ist nicht offensichtlich das da ne Tür ist ...
 

slowfly

Erfahrenes Mitglied
#5
Dein Protokoll, deine Regeln ;)

Ich würde sagen: Der Client fängt an. Er will sich ja authentifizieren. Wär ja merkwürdig, wenn der Server zuerst sagen muss "Eeeeey, neue Verbindung, mach mal Login,... bitte".