PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TCP-Server, Verständnissfrage


Brudertac
2006-10-07, 21:36:12
Hi Leute,

ich denke gerade über ein Projekt nach und frage mich wie folgendes
prinzipiell abläuft:

Eine Anwendung auf einem Mobilen Gerät (Handy o.ä.) stellt eine
GPRS Verbindung her und verbindet dann mittels TCP zu einer IP Adresse.

Dort muss ja irgendein TCP Server laufen der das ganze verarbeitet.

Gibt es sowas (die Server Seite) fertig oder macht man das lieber selber ?
Im Prinzip bräuchte ich wahrscheinlich etwas recht simples
weil die Daten die da ankommen ziemlich genau definiert sind und
letztendlich nur in eine SQL DB geschrieben werden müssen.
(Korrigiert mich wenn ich falsch liege :smile: )

Vielleicht habt Ihr ja Links zu diesen Thema. Wäre Cool.

Danke

HellHorse
2006-10-07, 23:15:56
Gibt es sowas (die Server Seite) fertig oder macht man das lieber selber ?
Was? TCP-Server-Socket?

Brudertac
2006-10-08, 14:41:14
Hm, gute Frage. Das ganze ist ziemliches Neuland für mich... :-)

EDIT:
Man sollte doch richtig lesen bevor man Antwortet :)
Naja, also schon TCP-Server-Socket.
Wie gesagt, ist Neuland für mich. Vielleicht geh ich das auch falsch an...

Godmode
2006-10-08, 19:21:39
Vielleicht hilft dir diese Seite weiter, da ist alles recht gut beschrieben:

http://www.uwo.ca/its/doc/courses/notes/socket/

HellHorse
2006-10-08, 23:39:29
Naja, also schon TCP-Server-Socket.
Das bietet eigentlich so gut wie jede Programmiersprache -> was darf's denn sein?

Du musst halt einfach das ganze Protokoll, das über TCP läuft selbst implementieren. Aber schlussendlich ist es sehr ähnlich zu in ein file schreiben oder von einem file lesen.

SimonX
2006-10-09, 01:37:10
@Hell,

Naja, das ganze Protokoll zu implementiert, ist sicher voll übertrieben. Dafür ist das OS da. Man nutzt nur noch ein Standard-Socket-API. Um einen guten Server zu bauen muss man dann immernoch viel wissen und viel programmieren.

Gast
2006-10-09, 03:48:22
@Hell,

Naja, das ganze Protokoll zu implementiert, ist sicher voll übertrieben. Dafür ist das OS da. Man nutzt nur noch ein Standard-Socket-API. Um einen guten Server zu bauen muss man dann immernoch viel wissen und viel programmieren.

Hellhorse meint damit wohl das Protokoll auf Anwendungsebene, nicht die Transportschicht.

Brudertac
2006-10-09, 08:49:06
Ich befürchte das ist ne Nummer zu gross für mich :confused:

Gibts sowas nicht fertig wo man dann aufsetzen kann ?

Ein Beispiel:

Wir hatten mal ein Projekt wo ein SMS Server die Kommunikation mit dem
GSM Modem geregelt hat und alles was so "reinkommt" in einen SQL Server
geschrieben hat. Man konnte natürlich bestimmen was wann passieren soll.

Sowas wär in diesem Fall ziemlich Cool. Dan bräuchte ich mich nicht direkt
um die TCP Kommunikation kümmern und brauche nur noch auf die
eingehenden Daten reagieren...
Das ganze darf auch was Kosten.

Monger
2006-10-09, 08:58:37
Natürlich gibt es in jeder modernen Sprache Möglichkeiten, eine Schnittstelle zu einem SQL Server aufzubauen. Das Problem ist aber viel eher: was konkret soll denn in die Datenbank geschrieben werden?

Woher soll denn ein fertiges Programm wissen, welche Daten du in welche Tabelle abfüllen willst?
Diese Interpretation, was denn die Datenbank mit deinen Daten überhaupt anfangen soll, ist nunmal menschliche Interpretation - und muss von dir irgendwie festgelegt werden.

HellHorse
2006-10-09, 12:54:31
Hellhorse meint damit wohl das Protokoll auf Anwendungsebene, nicht die Transportschicht.
Genau! Mehr Gäste wie du bitte!
Ich befürchte das ist ne Nummer zu gross für mich :confused:
Es ist wirklich fast so wie File IO. Es sieht für dich dann mehr oder weniger so aus, als würde der Client in ein File schreiben und der Server vom gleichen File lesen. Du musst dir halt klar werden, in welcher Art, du die Dateien in das File schreiben willst (das is das Anwendungs"protokoll", das du implementieren muss). Das kann von sehr einfach CSV, bis sehr kompliziert ASN1 so ziemlich alles sien.

Wenn du File IO kannst, dann kannst du TCP auch.

Unfug
2006-10-09, 13:05:30
Bei Programmiersprachen wie C++ wirst Du sicherlich einiges tüfteln dürfen.

Anders ist es bei .NET 2. Da haste Du die Klassen schon alle drin.

Dort öffnet man einen TCP Listener auf einem bestimmten Port und lässt ihn warten...

Der Client connectet dann einfach und schon hast Du deine Verbindung. Den Server lässt Du nun warten while (true) bis er etwas empfängt bzw der Stream (auf dem die Daten liegen) zuende ist.
Wandelst die Bytes (vom Stream) in ASCII.toString() um und kannst schon alles damit machen wie du willst.

Ich habe selbst ein kleines Programm geschrieben, was mir von meinem Gegenüber die Prozessliste sowie einen Screenshot seines aktuellen Monitors liefert. Auf Wunsch kann ich dir kleinen Code zeigen, der z.b. einfach nur Text von a-b liefert.

(aber jetzt muss ich erstmal Spülen. Meine Budde sieht aus wie...ach gehört ja nicht zu Thema)

Brudertac
2006-10-09, 14:09:57
Also erstmal muss ich echt mal Danke sagen das Ihr hier so mitschreibt.
Ich wusste echt nicht so richtig wie ich das anfassen soll aber
so langsam wirds klarer :smile:

Ich hab nochmal bissel im Web gesucht und bin auf folgendes gestossen:

Quickserver (http://sourceforge.net/projects/quickserver/)

Ich denke das könnte mir einiges Abnehmen.

@Monger
Welche Daten in welche Tabelle müssen muss natürlich ich definieren.
Bislang habe ich das (bei der kurz erwähnten SMS Lösung) mit SQL Triggern
gemacht. Das ganze ist aber auch nicht wirklich das Problem da klar ist
was für Daten ankommen und wann wie reagiert werden muss.

@Unfug
Beispiele Interessieren mich immer. Wär cool wenn du mir das schicken kannst.
Zum Thema Spülen, was sein muss muss sein :cool: