1

我正在使用 TCP 客户端

这是我的代码

do
{

   responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);

   bytes = stream.Read(data, 0, data.Length);

} while (bytes != 0);

我有时在这里遇到错误

bytes = stream.Read(data, 0, data.Length);

现有连接被服务器强制关闭。

如何处理。

如何检查流是否可以继续读取。

在服务器端,我正在写入流并关闭它。我应该在服务器上做点什么吗?

4

1 回答 1

3

该代码适用于流正常关闭的正常/健康场景。您所描述的(“现有连接被服务器强制关闭”)不是正常/健康的场景,因此它告诉您这个问题是完全合理的,它通过抛出异常来做到这一点。如果您正在读取文件,并且文件系统变得不可用(有人拉动磁盘/笔式驱动器等),这与您可能期望的相同。

所以:catch异常并适当地处理它。

除了很好地关闭流之外,您在服务器上没有什么特别的事情可以做。

于 2013-02-07T07:36:35.123 回答