Laden...

Client schon vorhanden?

Erstellt von f.ritz vor 19 Jahren Letzter Beitrag vor 19 Jahren 5.017 Views
f.ritz Themenstarter:in
341 Beiträge seit 2004
vor 19 Jahren
Client schon vorhanden?

Hallo zusammen!

Ich stehe vor einem Problemchen und zwar:
wie kann ich überprüfen ob ein TcpClient auf dem Server schon eingelogt ist ?(

C
1.215 Beiträge seit 2004
vor 19 Jahren

das ist sicher leichter am client zu regeln, in dem du nur eine instanz der client-software zulässt, um mehrfaches connecting zu vermeiden.

ansonsten kannst du dir doch die client-ip übermitteln lassen und am server als session speichern.

grtz
chief

f.ritz Themenstarter:in
341 Beiträge seit 2004
vor 19 Jahren

Um eine Verbindung aufzubauen benutze ich folgende Klassen:

  • TcpListener
  • TcpClient

Kann ich mit Hilfe dieser Klasse die IP des Senders bestimmen?

C
1.215 Beiträge seit 2004
vor 19 Jahren

du kannst dir die client-ip einfach auf den server übermitteln lassen - also, der client sendet seine ip nach dem connecten.
die ip erfährt der client über...
string ip = System.Net.Dns.Resolve(System.Environment.MachineName).AddressList[0].ToString();

grtz
chief

D
1 Beiträge seit 2004
vor 19 Jahren

Stand gerade vor gleichem Problem und kann den Client nicht beeinflussen, seine IP nochmals explizit mitzusenden.
Aber über eine Ableitung der Klasse TcpClient kannst Du auf die Socket-Member Client zugreifen und diese wiederum hat die Eigenschaften LocalEndPoint und RemoteEndPoint und damit läßt sich dann die IP-Adresse und der Port des Clients herausfinden. Ausgangspunkt : Doku zur geschützen TcpClient.Client-Eigenschaft.
Hoffe es hilt weiter!

C
980 Beiträge seit 2003
vor 19 Jahren

Original von Chief Brodie
string ip = System.Net.Dns.Resolve(System.Environment.MachineName).AddressList[0].ToString();

Damit würde ich vorsichtig sein, denn es liefert die lokale IP Adresse des Rechners ... d.h. bei den meisten die mit einem NAT gateway arbeiten (ich weis nicht wie das in DE ist, aber in CH ist das wahrscheinlich die Mehrheit (Cablecom und ADSL)) wirst du hier eine IP nahe von IP 192.168.1.1 erhalten, ist also alles andere als eindeutig ...