如何在TCP套接字中一次发送服务器响应2次? [英] How to send server response 2 times at one time in TCP socket?

查看:101
本文介绍了如何在TCP套接字中一次发送服务器响应2次?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的代码中,如下所示,服务器一次分别向客户端发送2个响应。但是我的客户只获得了第一次回复并没有获得第二名。第二次回复怎么了?



客户端代码(从服务器接收数据的部分):



  while  true 
{
NetworkStream networkStream = clientSocket.GetStream();
int bytesRead = networkStream.Read(bytesFrom, 0 ,bytesFrom.Length);
dataFrom = Encoding.ASCII.GetString(bytesFrom, 0 ,bytesRead)+ \\\
;
networkStream.Flush();
}





服务器端代码(从客户端接收数据和发送数据的部分):



  while (( true ) )
{
NetworkStream networkStream = clientSocket.GetStream();
networkStream.Read(bytesFrom, 0 ,( int )clientSocket.ReceiveBufferSize);
dataFromClient = Encoding.ASCII.GetString(bytesFrom);

serverResponse = 来自服务器的第一个消息;
sendBytes = Encoding.ASCII.GetBytes(serverResponse);
networkStream.Write(sendBytes, 0 ,sendBytes.Length);

serverResponse = 服务器的第二个消息;
sendBytes = Encoding.ASCII.GetBytes(serverResponse);
networkStream.Write(sendBytes, 0 ,sendBytes.Length);

networkStream.Flush();
}

解决方案

感谢_duDE_的回复,



我试过你的解决方案。但服务器仍然只发送第一个respose。 :(

In my code, shown below, server sends 2 responses separately at one time to the client. But my client gets only 1st response and did not get 2nd one. What happened to 2nd response?

Client side code (section of receiving data from server):

while (true)
{
    NetworkStream networkStream = clientSocket.GetStream();
    int bytesRead = networkStream.Read(bytesFrom, 0, bytesFrom.Length);
    dataFrom = Encoding.ASCII.GetString(bytesFrom, 0, bytesRead) + "\n";
    networkStream.Flush();
}



Server side code (section of receiving data from client and sending respose):

while ((true))
{
    NetworkStream networkStream = clientSocket.GetStream();
    networkStream.Read(bytesFrom, 0,(int)clientSocket.ReceiveBufferSize);
    dataFromClient = Encoding.ASCII.GetString(bytesFrom);

    serverResponse = "First msg from server";
    sendBytes = Encoding.ASCII.GetBytes(serverResponse);
    networkStream.Write(sendBytes, 0, sendBytes.Length);

    serverResponse = "Second msg from server";
    sendBytes = Encoding.ASCII.GetBytes(serverResponse);
    networkStream.Write(sendBytes, 0, sendBytes.Length);

    networkStream.Flush();
}

解决方案

Thanks _duDE_ for the reply,

I have tried your solution. But server still sends only first respose. :(


这篇关于如何在TCP套接字中一次发送服务器响应2次?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆