Sockets

18/01/2006 - 12:27 por luis | Informe spam
Somos un grupo de alumnos de Administración de Sistemas.
Nuestro profesor nos tiene locos con el tema de sockets.
Alguien podría decirnos como podemos conocer la IP del cliente que trata de
comunicar con un TCPListener.
Con un Socket genérico es muy fácil, pero con este no tenemos propiedades
que lo indiquen.

Salu2 ASI2 Carballeira Ourense
 

Leer las respuestas

#1 Angel J. Hernández M.
19/01/2006 - 20:27 | Informe spam
Hola Luís, qué tal? Lo que deseas hacer lo puedes conseguir de la siguiente
manera. Si estás utilizando un TcpListener debes invocar el método
AcceptSocket (te devuelve un socket y puedes acceder a sus propiedades) o
AcceptTcpClient (que te regresa un TcpClient), en caso que sea el segundo
sería algo así...

TcpListener listener;
listener = new TcpListener(direccion, puerto);
listener.Start();


while (true) {
TcpClient cliente = listener.AcceptTcpClient();

// Utilizas Reflection para obtener el socket subyacente (así puedes
obtener la dirección remota)
object miembro= ((FieldInfo) (((MemberInfo[])
cliente.GetType().GetMember("m_ClientSocket", MemberTypes.All,
BindingFlags.NonPublic | BindingFlags.Instance
| BindingFlags.GetField))[0])).GetValue(cliente) ;

Console.WriteLine("La dirección IP del cliente es {0}", ((Socket)
miembro).RemoteEndPoint.ToString());
}


Espero sea de utilidad,

Saludos,


Angel J. Hernández M.
MCP - MCAD - MCSD - MCDBA
Microsoft MVP ASP/ASP.NET
http://groups.msn.com/desarrolladoresmiranda
http://www.consein.com



"luis" wrote in message
news:
Somos un grupo de alumnos de Administración de Sistemas.
Nuestro profesor nos tiene locos con el tema de sockets.
Alguien podría decirnos como podemos conocer la IP del cliente que trata
de comunicar con un TCPListener.
Con un Socket genérico es muy fácil, pero con este no tenemos propiedades
que lo indiquen.

Salu2 ASI2 Carballeira Ourense

Preguntas similares