OVH Cloud OVH Cloud

impossible d'obtenir l'adresse IP d'un TcpListener

3 réponses
Avatar
herbert
bonjour à tous,

j'utilise un TcpListener qui accept des TcpClient (et non pas des Socket
pour ne pas être embété avec la sécurité)
Mais je ne peux pas avoir l'adresse IP du client.
je peut obtenir un NetworkStream de TcpClient.GetStream(), mais
NetworkStream.Socket est une propriétés protected.
Et avec une classe qui hérite de NetworkStream, DerivedNetworkStream par
exemple, je ne peux pas caster:
DerivedNetworkStream dns = (DerivedNetworkStream)TcpClient.GetStream()
(exception au run-time)

que faire ?
merci

3 réponses

Avatar
Paul Bacelar
"herbert" wrote in message
news:
bonjour à tous,

j'utilise un TcpListener qui accept des TcpClient (et non pas des Socket
pour ne pas être embété avec la sécurité)
Mais je ne peux pas avoir l'adresse IP du client.
je peut obtenir un NetworkStream de TcpClient.GetStream(), mais
NetworkStream.Socket est une propriétés protected.
Et avec une classe qui hérite de NetworkStream, DerivedNetworkStream par
exemple, je ne peux pas caster:
DerivedNetworkStream dns = (DerivedNetworkStream)TcpClient.GetStream()
(exception au run-time)

que faire ?
merci



C'est TcpClient qu'il faut dériver pas NetworkStream.

--
Paul Bacelar
Avatar
Romain Laffitte
Bonjour a tous,
concretement vous faites comment pour récupérer l'@ip d un client a partir
du tcpclient ?

"Paul Bacelar" wrote:

"herbert" wrote in message
news:
> bonjour à tous,
>
> j'utilise un TcpListener qui accept des TcpClient (et non pas des Socket
> pour ne pas être embété avec la sécurité)
> Mais je ne peux pas avoir l'adresse IP du client.
> je peut obtenir un NetworkStream de TcpClient.GetStream(), mais
> NetworkStream.Socket est une propriétés protected.
> Et avec une classe qui hérite de NetworkStream, DerivedNetworkStream par
> exemple, je ne peux pas caster:
> DerivedNetworkStream dns = (DerivedNetworkStream)TcpClient.GetStream()
> (exception au run-time)
>
> que faire ?
> merci

C'est TcpClient qu'il faut dériver pas NetworkStream.

--
Paul Bacelar





Avatar
Paul Bacelar
J'aurais utilisé "TcpListener.AcceptSocket" pour avoir une socket pénard,
mais bon.

Avec TcpListener.AcceptTcpClient

class MyTcpClient : TcpClient
{
public static IPAddress AdresseClient(TcpClient tcpClient )
{
return ((IPEndPoint)tcpClient.Client.RemoteEndPoint).Address;
}
}

...
TcpClient tcpClient = tcpListener.AcceptTcpClient();
...
IPAddress adresseClient = MyTcpClient.AdresseClient(tcpClient);
...
--
Paul Bacelar

"Romain Laffitte" wrote in
message news:
Bonjour a tous,
concretement vous faites comment pour récupérer l'@ip d un client a partir
du tcpclient ?

"Paul Bacelar" wrote:

> "herbert" wrote in message
> news:
> > bonjour à tous,
> >
> > j'utilise un TcpListener qui accept des TcpClient (et non pas des


Socket
> > pour ne pas être embété avec la sécurité)
> > Mais je ne peux pas avoir l'adresse IP du client.
> > je peut obtenir un NetworkStream de TcpClient.GetStream(), mais
> > NetworkStream.Socket est une propriétés protected.
> > Et avec une classe qui hérite de NetworkStream, DerivedNetworkStream


par
> > exemple, je ne peux pas caster:
> > DerivedNetworkStream dns = (DerivedNetworkStream)TcpClient.GetStream()
> > (exception au run-time)
> >
> > que faire ?
> > merci
>
> C'est TcpClient qu'il faut dériver pas NetworkStream.
>
> --
> Paul Bacelar
>
>
>