C sharp - Duda socket

   
Vista:

Duda socket

Publicado por c#dubitativo (2 intervenciones) el 24/01/2008 17:40:22
Hola a todos, estoy realizando una apliación que me lee correctamente los datos de un host con dirección www.nombrehost.dominio (por ejemplo: www.google.es) utilizando las clases DNS, IPEndPoint, Socket... todo lo necesario. El problema viene si trato de leer algo como www.telefonica.net/web/web18/f.txt, es decir, que no acabe en .es, .com... averiguo correctamene la direccion IP de www.telefonica.net (en formato IPv4, es decir, con cuatro octetos, en este caso 213.4.130.95), pero no se donde meter "/web/web18/f.txt". El codigo que me funciona para leer un .es, .com, etc es el siguiente:



//String con la dirección del host y variable que
//almacenar los datos devueltos por este
string host = "www.google.es";
string datos = "";
//Obtengo la IP del host (devuelta en un array)
IPHostEntry ip = Dns.GetHostEntry(host);
//Creo un punto ipendpoint y un socket para conectarme
//a ella. Omito un bucle (foreach) para recorrer todas las
//ip's y hacer así el ejemplo más corto, me conecto a la
//primera ip del array ([0])
IPEndPoint ipe=new IPEndPoint(ip.AddressList[0],80);
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//String con la petición al host
string peticion = "GET / HTTP/1.1 Host: " + host + " Connection: Close ";
//Arrays para trabajar con el socket. Uno para enviar la petición
//y otro para recibir los datos devueltos (por el socket)
Byte[] bytesEnviados = Encoding.ASCII.GetBytes(peticion);
Byte[] bytesRecibidos = new Byte[256];
//Conexión del socket (al ipendpoint "ipe")
s.Connect(ipe);
//Envio de la petición al servidor
s.Send(bytesEnviados, bytesEnviados.Length, 0);
//Bucle para recoger los datos devueltos
int bytes;
do{
bytes = s.Receive(bytesRecibidos, bytesRecibidos.Length, 0);
datos += Encoding.ASCII.GetString(bytesRecibidos);
}while (bytes > 0);
//A partir de aqui se tratarian los datos almacenados en
//la varible "datos"

¿Que parte del codigo habria que modificar para leer el fichero de texto alojado en www.telefonica.net/web/web18/f.txt?

Ya se que para un fichero de texto hay soluciones más sencillas que esta (con WebRequest y StreamReader por ejemplo), pero estoy empezando con esto de los sockets y seria para otra tarea mas compleja. Muchas gracias a todos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Duda socket

Publicado por c#dubitativo (2 intervenciones) el 28/01/2008 01:00:01
Resuelto, si a alguien le interesa, solo tiene que avisar y le paso el codigo. Gracias a todos los que han leido el hilo. Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar