Server-Clinet-Programmierung

23/10/2008 - 16:06 von Oliver Bleckmann | Report spam
Ich habe mich gerade mit meinem Bruder über Client- Server- Programmierung
unterhalten, dabei ist mir aufgefallen, daß ich gar nicht so recht weiß, wie
ich hier vorgehen würde...

Ausgangspunkt ist eine Server-Client-Anwendung, die nur im lokalen LAN,
nicht aber über das Internet funktioniert. Das Problem ist die IP der
Clients festzustellen (mal abgesehen davon, daß sie obendrein dynamisch
ist), beim Server kommen wohl immer nur Pakete mit der internen (LAN)
Router-IP an.

Hier mal die Fragen:
Er programmiert mit dem Windows Communication Foundation Framwork, bzw.
diesem Message- Konzepts (ich mache kein VB), daher die Fragen:

Wie funktioniert das jetzt (auch technisch) wenn ich eine Serveranwendung
programmiere, die nur auf einem Port lauscht, auf dem sich mehrere Clients
verbinden können - wie werden die Clients unterschieden?
Oder anders gesagt, wie funktionieren Sockets, macht das WCF das
automatisch?
Muß der Router hierfür geeignet sein? Kann es ein Konfigurationsfehler sein,
Stichwort "geroutetes Subnetz"? Ob das also auch noch eine Providersache
ist!? Auf Anraten von Netgear hat die Firma schon einen neuen "fàhigen"
Router gekauft!?
Was mir noch in den Sinn gekommen ist (siehe Peer-to-Peer-Netzwerke), ob es
nicht besser ist, für jeden Client einen eigenen Port zu verwenden!?
Auch hier die Frage, wie geht das technisch, erinnere mich dunkel an
Experimente mit Telnet und passivem ftp, wo man einen Port für den
Datenaustausch vom Server bekommt. Kommentare zu der Lösung?
Naja, lange Rede, kurzer Sinn, ein verstàndlich gehaltenen Link zum Thema
Hardware und Implementation wàre nett.

Danke,
Gruß, Olli.
 

Lesen sie die antworten

#1 Detlef
23/10/2008 - 17:39 | Warnen spam
On 23 Okt., 16:06, "Oliver Bleckmann"
wrote:


Ausgangspunkt ist eine Server-Client-Anwendung, die nur im lokalen LAN,
nicht aber über das Internet funktioniert.



funktioniert oder funktionieren soll?

Das Problem ist die IP der
Clients festzustellen (mal abgesehen davon, daß sie obendrein dynamisch
ist), beim Server kommen wohl immer nur Pakete mit der internen (LAN)
Router-IP an.



man socket
man listen
man accept

Dann sollte man aus dem Socket, das accept zurückliefert, die Client-
IP Adresse auslesen können.
Ich mache das so gut wie nie, also auch immer "mit Google offen".



Hier mal die Fragen:
Er programmiert mit dem Windows Communication Foundation Framwork, bzw.
diesem Message- Konzepts (ich mache kein VB), daher die Fragen:




Was ist das?


Wie funktioniert das jetzt (auch technisch) wenn ich eine Serveranwendung
programmiere, die nur auf einem Port lauscht, auf dem sich mehrere Clients
verbinden können - wie werden die Clients unterschieden?



Durch die Client-Ports.
Eine TCP Verbindung hat zwei Ports. Für jedes Ende einen.

Oder anders gesagt, wie funktionieren Sockets, macht das WCF das
automatisch?



Das macht das Client-Socket automatisch.

Muß der Router hierfür geeignet sein?



Nicht "besonders". Er sollte entweder fehlen oder routen. Solange er
sich auf eine dieser beiden Seinsweisen beschrànkt, kann eigentlich
nichts schiefgehen.

Z.B. www.google.de (dahinter dürften sogar mehrere Server stehen) kann
mehrere Clients bedienen.
Das Problem ist also lösbar.

Kann es ein Konfigurationsfehler sein,
Stichwort "geroutetes Subnetz"?



Siehe meine Frage oben.

Was _soll_ funktionieren? Was funktioniert _tatsàchlich_?

Ob das also auch noch eine Providersache
ist!? Auf Anraten von Netgear hat die Firma schon einen neuen "fàhigen"
Router gekauft!?



Vielleicht sollte die "Firma" (seit wann lauscht die auf Ports und
nicht mehr auf Telefonleitungen?) erstmal skizzieren,
was sie überhaupt möchte.

Dann wird man es möglicherweise auch bauen können.

Was mir noch in den Sinn gekommen ist (siehe Peer-to-Peer-Netzwerke), ob es
nicht besser ist, für jeden Client einen eigenen Port zu verwenden!?



Das ist nicht nur sinnvoll, man macht es so.

Wie gesagt, es gibt zwei Ports.

Auch hier die Frage, wie geht das technisch, erinnere mich dunkel an
Experimente mit Telnet und passivem ftp, wo man einen Port für den
Datenaustausch vom Server bekommt. Kommentare zu der Lösung?



Du hast dann zwei TCP Verbindungen, die sich wenigstens auf der Seite
des FTP Clients in der Portnummer unterscheiden.

Naja, lange Rede, kurzer Sinn, ein verstàndlich gehaltenen Link zum Thema
Hardware und Implementation wàre nett.



Mal sehen, was Google zu "Socket Programmierung Tutorial" so alles
ausspuckt.

http://www.pc-adviser.de/socket_pro...erung.html
scheint mir auf den ersten Blick ganz anstàndig zu sein.

Ähnliche fragen