Мне нужно проверить коды статуса http в некоторых доменах с минимальным количеством трафика.Получите только код статуса http с сокетами
Я решил использовать розетки. Проблема в том, что система всегда получает полный заголовок и не только 20 байт.
Как я могу уменьшить ответ больше?
Вот код ... работает мелкое
string uri = "www.stackoverflow.com";
var addresses = System.Net.Dns.GetHostAddresses(uri);
IPEndPoint hostep = new IPEndPoint(addresses[0], 80);
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sock.Connect(hostep);
if (sock.Connected)
{
byte[] msg = Encoding.UTF8.GetBytes("HEAD/HTTP/1.1\r\nHost: "+uri+"\r\nConnection: Close\r\n\r\n");
int i = sock.Send(msg,0,msg.Length);
byte[] bytes = new byte[20];
i = sock.Receive(bytes);
string header = Encoding.ASCII.GetString(bytes);
Console.WriteLine(header);
}
Спасибо за каждую маленькую помощь!
Зачем вам нужно уменьшить размер ответов? Я не уверен, что вы получите какую-либо выгоду от скорости, получая десятки, а не сотни байтов (оба они, скорее всего, будут входить в один tcp-кадр). – simonc
его количество доменов. Я должен проверить несколько миллионов кодов состояния. Когда заголовок имеет ~ 400-500 байт, трафик загрузки для 10 миллионов доменов составляет ~ 4,6 GByte –