【发布时间】:2011-09-24 09:19:21
【问题描述】:
我有一个将对象序列化并将其发送到服务器应用程序的客户端应用程序。服务器应该反序列化对象,对其进行更改,然后将其序列化并发送回。
服务器代码:
TcpClient client = server.AcceptTcpClient();
using(NetworkStream stream = client.GetStream())
{
using(StreamReader streamReader = new StreamReader(stream))
{
string xmlData = streamReader.ReadToEnd();
}
}
除非客户端关闭流,否则 ReadToEnd 不会返回。但是如果客户端关闭流,我就无法发送响应。
有没有更好的方法来做到这一点?
【问题讨论】:
-
顺便提一下,请注意
StreamReader.Dispose(在您完成阅读后将被调用)将关闭底层流。无论您的最终解决方案是什么,您都必须避免在发送响应之前关闭StreamReader。