我有一個TCP服務器啓動並運行在windows 2k8上的vs2010上的本地主機上。TCP客戶端沒有收到環迴響應
當我連接在客戶端上使用VS2010 127.0.0.1,服務器獲取的電話,(我可以看到它 從調試)作爲TCP服務器執行命令行協議處理程序,但該客戶端 收到服務器響應,這是會話密鑰,但在讀取 響應流時阻塞客戶端。
當我在同一個端口的環回使用Telnet時,發送相同的命令序列, 響應,即會話密鑰,被瞬間接收。
下面是客戶端代碼:
EndPoint serverAddress = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9121);
sing (Socket socket = new Socket(serverAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp))
{
socket.Connect(serverAddress);
var socketStream = new NetworkStream(socket);
var reader = new StreamReader(socketStream, Encoding.ASCII, false);
var writer = new StreamWriter(socketStream, Encoding.ASCII, 1024);
string charSource = Guid.NewGuid().ToString().Replace("-", string.Empty)
+ Guid.NewGuid().ToString().Replace("-", string.Empty)
+ Guid.NewGuid().ToString().Replace("-", string.Empty);
Random rd = new Random();
int startPos = rd.Next(0, charSource.Length - 2);
int endPos = rd.Next(startPos + 1, charSource.Length - 1);
var currentMessage = charSource.Substring(startPos, endPos - startPos + 1);
Console.WriteLine("Sent Command");
writer.Write("HEAR {0} {1}", currentMessage.Length.ToString().PadLeft(4, '0'), currentMessage);
writer.Flush();
Console.WriteLine("Reading Command Results");
var line = reader.ReadLine();
Console.WriteLine("Received: " + line);
}
鮑勃
我們永遠無法回答這個問題。但是,如果您顯示相關的代碼,我們可能會。 – nos 2012-02-26 00:59:37
你錯過了很多關於這個問題的信息。可能有十幾個變量導致您的遺漏迴應。我們如何猜測? – Jason 2012-02-26 02:04:33
是的,那就是我想的。我會發布客戶端代碼。 – 2012-02-26 13:41:33