关闭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();以获得服务器接收的数据,但这会断开我的客户端,这是一个问题。有什么建议吗?

关闭BufferedStream而不断开TcpClient连接

很明显,通过关闭与TcpClient对象相关联的NetworkStream对象,断开客户端连接。由于TCP是一个基于流的协议,您只能做两件事中的一件:1;使用networkstream。如果在readtimeout之前没有数据可用,则断开连接,或2。设计一个协议,告诉接收方发送方愿意发送的数据长度,并只读取该长度的字节。

你试过只用bufferedoutput.Flush()代替吗?