Hallo zusammen!
Ich stehe vor einem Problemchen und zwar:
wie kann ich überprüfen ob ein TcpClient auf dem Server schon eingelogt ist ?(
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
Um eine Verbindung aufzubauen benutze ich folgende Klassen:
Kann ich mit Hilfe dieser Klasse die IP des Senders bestimmen?
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
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!
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 ...