Я пытаюсь отправить запрос GET на сервер с классом сокета.
Это мой тестовый код:
ConnectInternet();
String responseData = String.Empty;
String buffer = "GET /" + gLoginString + "/" + Command + "?winmob=" +
ClassGlobalClass.VersioneJack + " HTTP/1.1";
if (SendHeader != null)
{
buffer = buffer + "\nX: " + SendHeader;
}
buffer = buffer + "\n\n";
try
{
Byte[] bytesSent = Encoding.ASCII.GetBytes(buffer);
Byte[] bytesReceived = new Byte[256];
Socket client = ConnectSocket("217.172.185.199", 5001);
if (client == null)
return ("Connection failed");
// Send request to the server.
client.Send(bytesSent, bytesSent.Length, SocketFlags.DontRoute);
bool StopWhile = false;
while (!StopWhile)
{
int bytes = 0;
bytes = client.Receive(bytesReceived, bytesReceived.Length, 0);
responseData = Encoding.ASCII.GetString(bytesReceived, 0, bytes);
if (responseData != null & responseData != string.Empty)
{
StopWhile = true;
}
}
}
Когда я пишу в этот носок, сервер ждет, прежде чем ответить. Это заставляет C # сделать еще один запрос. Как я могу избежать этого?
ps: я нахожусь на Netcf3.5
EDIT: это вывод Netcat, когда снифф получает пакеты
$ nc -l -p 5001
GET /Test/send?winmob=version HTTP/1.1
X: 24 XXXXXXXXXX 123 pass test 2
GET /Test/send?winmob=version HTTP/1.1
X: 24 XXXXXXXXXX 123 pass test 2
GET /Test/send?winmob=version HTTP/1.1
X: 24 XXXXXXXXXX 123 pass test 2
GET /Test/send?winmob=version HTTP/1.1
X: 24 XXXXXXXXXX 123 pass test 2
GET /Test/send?winmob=version HTTP/1.1
X: 24 XXXXXXXXXX 123 pass test 2