Windows 2k8上でvs2010上のlocalhost上でTCPサーバーを稼動しています。私はVS2010を使用して127.0.0.1にクライアントを接続する場合TCPクライアントがループバックで応答を受け取っていません
は、サーバーがコールを取得し、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
質問には多くの情報がありません。あなたの欠けている応答に寄与するダース変数が存在する可能性があります。私たちはどのように推測できますか? – Jason
はい、それは私が考えたものです。私はクライアントコードを掲示します。 –