Я отправляю строку XML в порт в окне AIX. У меня есть два способа подключения к этой коробке (TcpClient & HttpWebRequest). У меня есть таймеры, чтобы дать мне представление о том, сколько времени требуется AIX для обработки моего запроса и ответа.
Похоже, что TcpClient работает быстрее, чем запрос HttpWebRequest, до 100 миллисекунд. Я подозреваю, что мое местоположение таймера может быть неправильным. В любом случае, я не думаю, что местоположение таймера будет таким большим различием во времени ответа.
Еще одна мысль, которая у меня была, - это использование операторов. Возможно, они держат соединение открытым дольше, чем TcpClient.
Известно ли, что подход TcpClient быстрее?
// TcpClient
TcpClient client = new TcpClient(host, port);
DateTime x = DateTime.Now;
NetworkStream stream = client.GetStream();
NetworkStream stream = client.GetStream();
stream.Write(request, 0, request.Length);
stream.Flush();
while ((count = stream.Read(buffer, 0, buffer.Length)) > 0)
response.Append(encoder.GetString(buffer, 0, count));
DateTime y = DateTime.Now;
totalMS = y.Subtract(x).TotalMilliseconds;
// HttpWebRequest
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(URI);
using (Stream webStream = webRequest.GetRequestStream())
{
webStream.Write(postdata, 0, postdata.Length);
webStream.Close();
DateTime x = DateTime.Now;
using (WebResponse webresponse = webRequest.GetResponse())
{
webresponse.Close();
DateTime y = DateTime.Now;
using (Stream rs = webresponse.GetResponseStream())
{
using (StreamReader sr = new StreamReader(rs, Encoding.Default))
{
// Read response to end
}
}
}
}
totalMS = y.Subtract(x).TotalMilliseconds;