Remote klient IP adresa   otázka

VB.NET

Dobrý den,

mám 2 dotazy:

1) na vytvořeném serveru potřebuji zjistit veřejnou IP adresu připojeného klienta. Server a připojení je vytvořeno následovně:

Public clientListener As New TcpListener(localAddr, port)
Shared mySocket As Socket
mySocket = clientListener.AcceptSocket()

2) když se připojený klient sám odhlásí, následující hodnota je True. Jakto? mySocket.Connected (= True pokud se klient sám odpojí)

Zkoušel jsem několik možností .net, ale bez úspěchu. Děkuji za rady.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dobrý den ještě jednou.

Asi jsem nedokázal dobře popsat to, s čím bych potřeboval poradit. Rady buch si moc cenil.

Pokud použiji následující podmínku, lze s ní ověřit, zda je klient na server připojen a zkontrolovat, zda se ne/přerušilo spojení?

If mySocket.Connected = True Then
  'něco
End If

Děkuji předem za odpověďi.

Petr

nahlásit spamnahlásit spam 0 odpovědětodpovědět

On server časem zjistí že se mu klient odpojil ale ne hned. Většinou tam je nějaká prodleva. Dá se to řešit tím, že než se klient odpojí pošle serveru příkaz že končí a server na to zareaguje. To ale samozřejmě neřeší případ násilného ukončení spojení (pád systému, výpadek sítě atd.) tady by se to dalo vyřešit tak, že server zkusí na klienta poslat nějaký příkaz (něco jako ping) a tak zjistí zda je klient stále připojen nebo ne.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Vím, že když jsem si naposled hrál s vlastností Connected, tak nějak zlobila a když se klient neodpojil správně, tak se na False nenastavila. Řešením je tedy poslat nějaká data a pokud dostanu výjimku, tak se klient odpojil.

A označujte, prosím, bloky kódu tlačítkem VB Code.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Děkuji za odpovědi. Budu to tedy řešit pravidelným pokusem serveru poslat 1 znak na klienta. To asi budu muset řešit přes TRY-CATCH, že?

Petr

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback