現在ソケット通信を行うプログラム開発を行っており、下記ページを参考にして作っています。
http://note.chiebukuro.yahoo.co.jp/detail/n1656
その中にクライアントから電文を受信し、返信電文を送信する記述があります。
下記コードの「ClientSocket.Send」の部分になりますが、ここで返信電文を二個送信したいのですが、何故か二個目が送信されません。
返信電文としてではなく電文を直接送信する方法もありますが、
仕様の関係上、あくまで返信電文を二通送りたいです。
原因、解決方法をご教示いただければ幸いです。
// クライアントからの接続を受け付ける System.Net.Sockets.Socket ClientSocket = ServerSocket.Accept(); // Socketクライアント // クライアントからの電文の受信 byte[] ReceiveData = new byte[2000]; int ResSize = ClientSocket.Receive( ReceiveData, ReceiveData.Length, System.Net.Sockets.SocketFlags.None); // 受信 string str = System.Text.Encoding.Unicode.GetString(ReceiveData); textBox1.Text = str; // 受信データ // 返信電文をクライアントへ送信 byte[] SendBuffer = Encoding.Unicode.GetBytes("本サーバーの御利用ありがとう御座います。"); int i = ClientSocket.Send(SendBuffer); // ↓ここでもう一度返信電文を送信したい byte[] SendBuffer2 = Encoding.Unicode.GetBytes("2通目の送信です。"); i = ClientSocket.Send(SendBuffer2); // Socketクライアントをクローズ ClientSocket.Shutdown(System.Net.Sockets.SocketShutdown.Both); ClientSocket.Close();
一つ目が正常に送信できていると判断しているようですが、どのようにして判断していますか?また、一つ目の送信ができた後、処理はどこまで進んでいますか?
回答3件
あなたの回答
tips
プレビュー