Tworze sobie funkcje do pobierania źródła strony, a wygląda ona tak:
void GS()
{
onpc pc = new onpc(OnProgressChange);
onpl pl = new onpl(OnPageLoad);
onerr pe = new onerr(OnPageError);
pc(0, 1);
Regex r = new Regex("(http:..){0,1}(?<domena>.*(pl|com|org))//{0,1}(?<adres>.*){0,1}");
Match m = r.Match(adres);
string request = "GET /" + m.Groups["adres"].Value + " HTTP/1.1\r\nHost: " + m.Groups["domena"].Value + "\r\nUser-Agent: myBrowser 0.9 Beta\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: pl,en-us;q=0.7,en;q=0.3\r\nAccept-Encoding: gzip,deflate\r\nAccept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7\r\nKeep-Alive: 115\r\nConnection: keep-alive\r\n\r\n";
//Host: " + m.Groups["domena"].Value + "\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: pl,en-us;q=0.7,en;q=0.3\r\n\r\n";
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Byte[] requestBytes = Encoding.UTF8.GetBytes(request);
int bytes = 0;
string page = "";
int max = 0;
int pos = 0;
Byte[] bytesReceived = new Byte[256];
try
{
s.Connect(m.Groups["domena"].Value, port);
//max = s.Available;
if (s.Connected)
{
s.Send(requestBytes);
do
{
//if (max < s.Available) { max = s.Available+1; }
bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
if (max < s.Available) { max = s.Available; pos = 0; }
pos += bytes;
page = page + Encoding.UTF8.GetString(bytesReceived, 0, bytes);
pc(pos, max);
}
while (bytes > 0);
s.Close();
Source = page;
pc(1, 1);
pl();
}
}
catch (Exception ex)
{
pe(ex.Message);
}
}
I moje pytanie jest takie:
Dlaczego gdy wczytuje stronę np. wp.pl to strona normalnie się wczytuje i wyświetla źródło, a gdy próbuje wczytać google.pl to źródło pobierze ale wyświetli je z opóźnieniem?
PS: Sorry za duży header ale próbowałem przekopiować tak jak leci zapytanie z firefoxa ale nic to nie dało.