我正在尝试向带有套接字类的服务器发送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上
编辑:这是嗅探收到数据包时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