关闭BufferedStream而不断开TcpClient连接
本文关键字:TcpClient 连接 断开 BufferedStream 关闭 | 更新日期: 2023-09-27 18:11:09
我正试图通过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();
以获得服务器接收的数据,但这会断开我的客户端,这是一个问题。有什么建议吗?
很明显,通过关闭与TcpClient对象相关联的NetworkStream对象,断开客户端连接。由于TCP是一个基于流的协议,您只能做两件事中的一件:1;使用networkstream。如果在readtimeout之前没有数据可用,则断开连接,或2。设计一个协议,告诉接收方发送方愿意发送的数据长度,并只读取该长度的字节。
你试过只用bufferedoutput.Flush()
代替吗?