Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/06/2008, 20:11
razer
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 8 meses
Puntos: 6
Respuesta: Sockets en C# , Problemita para acceder a paginas web

Sigue sin funcionar. Ahora me muestra un codigo html que dice redirect, y hay un Location a url.com :S.... osea, sigo sin entender como decirle que entre a fotolog.com, por que redireccion tiene que pasar.. etc.

Pego todo el codigo:

Código:
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;

using System.Net;
using System.Net.Sockets;
using System.IO;

namespace test
{
    class Program
    {
      static void Main(string[] args)
      {
  
        string cabecera = "GET / HTTP/1.1\nHost: url\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3\n\n";
        string respuesta;

        Byte[] SendBytes = Encoding.ASCII.GetBytes(cabecera);
        Byte[] RecvBytes = new Byte[255];
        int bytes;

        try
        {
          IPHostEntry direc = Dns.GetHostEntry("www.fotolog.com");
          IPEndPoint Ep = new IPEndPoint(direc.AddressList[0], 80);
       
          Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

          try
          {
            socket.Connect(Ep); //Conectamos
            socket.Send(SendBytes, SendBytes.Length, SocketFlags.None); //Enviamos la cabecera
            bytes = socket.Receive(RecvBytes, RecvBytes.Length, SocketFlags.None); //Recibimos la respuesta en bloques de 255 bytes

            while (bytes > 0)
            {
              respuesta = Encoding.ASCII.GetString(RecvBytes, 0, bytes); //Codificamos la respuesta y la guardamos en respuesta.
              Console.WriteLine(respuesta);
              bytes = socket.Receive(RecvBytes, RecvBytes.Length, SocketFlags.None); //Recibimos la respuesta en bloques de 255 bytes
            }   
          }
          catch (Exception) //Si durante el procedimiento hay error salta aqui.
          {
            Console.WriteLine("Se produció un error al recibir bytes.");
            Console.Read();
          }
      }
      catch (Exception)
      {
        Console.WriteLine("Host no encontrado (lo mas probable).");
      }

      Console.Read(); //getch
      }
 }