首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NetworkStream的连接自动关闭

NetworkStream的连接自动关闭
EN

Stack Overflow用户
提问于 2014-09-01 11:06:33
回答 1查看 1.1K关注 0票数 3

我的应用程序打开一个NetworkStream和一个StreamWriter,将HL7消息发送到服务。该服务接收HL7消息,并总是返回一个确认。我有以下问题:在发送hl7消息(这是有效的,我进行了测试)之后,我尝试使用s StreamReader接收来自服务的确认,但是这会导致一个参数异常“datastream是不可读的”。我在代码中进行了调试,发现连接是在StreamWriter的the块之后关闭的,因此StreamReader没有什么可读取的。

这是我的代码:

代码语言:javascript
复制
    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消息后发送回来的确认信息?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-01 11:38:20

解决: StreamWriter内部的使用块也关闭了基本流。

解决方案:告诉Streamwriter让连接保持打开。

代码语言:javascript
复制
public StreamWriter(
    Stream stream,
    Encoding encoding,
    int bufferSize,
    bool leaveOpen
)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25604447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档