【发布时间】:2014-10-25 14:24:48
【问题描述】:
我的应用程序打开一个 NetworkStream 和一个 StreamWriter 以将 HL7 消息发送到服务。 该服务接收 HL7 消息并始终发回确认。我有以下问题:发送 HL7 消息(有效,我对其进行了测试)后,我尝试使用 s StreamReader 从服务接收确认,但这会导致参数异常“数据流不可读”。我调试了我的代码,发现在 StreamWriter 的 using-block 之后连接已关闭,因此 StreamReader 没有什么可读取的。
这是我的代码:
public static void SendMessage(string message, string ip, int port)
{
string acknowledge;
try
{
using (TcpClient client = new TcpClient(ip, port))
{
using (NetworkStream networkStream = client.GetStream())
{
using (StreamWriter clientStreamWriter = new StreamWriter(networkStream))
{
clientStreamWriter.Write(message);
}
using (StreamReader clientStreamReader = new StreamReader(networkStream))
{
acknowledge = clientStreamReader.ReadToEnd();
}
}
}
}
catch (Exception ex)
{
MessageBox.Show("Connection Problems: " + ex.ToString());
}
}
如何阻止连接关闭,因为我想读取客户端在收到 HL7 消息后发回的确认?
【问题讨论】:
标签: c# tcpclient streamreader streamwriter networkstream