我正在尝试通过TcpClient和BufferedStream发送图像。问题是我无法在不断开TcpClient的情况下发送数据。
发送数据:
while ((bytesread = bufferedinput.Read(buffer, 0, sizeBuffer)) > 0)
{
//Sending data
bufferedoutput.Write(buffer, 0, bytesread);
}
接收数据:
while ((bytesread = bufferedinput.Read(buffer, 0, buffsize)) > 0)
{
bufferedoutput.Write(buffer, 0, bytesread);
}
其中:
NetworkStream serverStream = client.GetStream();
和BufferedStream bufferedoutput = new BufferedStream(serverStream);
问题是我必须在客户端转换bufferedoutput.Close();
以获取服务器收到的数据,但这会断开我的客户端,这是一个问题。有什么建议吗?
答案 0 :(得分:1)
很明显,通过关闭与TcpClient对象关联的NetworkStream对象,断开客户端连接。由于TCP是基于流的协议,因此只能执行以下两种操作之一:1。使用networkstream.readtimeout断开连接,如果在读取超时之前没有数据可用,或者2.]设计协议以告知接收器长度对于数据,发送方愿意发送,并且只读取该字节长度。
答案 1 :(得分:0)
您是否只尝试了bufferedoutput.Flush()
?