非连接套接字上不允许此操作

时间:2013-11-12 08:57:03

标签: c# sockets

请考虑以下事项:

    public void Connect()
    {
        clientObject = new TcpClient();
        IPEndPoint ipEnd = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 90);
        centralForm.writeLog("Connecting to desired server", System.Drawing.Color.Gray, true);
        clientObject.Connect(ipEnd);
        if ((debug) && (clientObject.Connected)) { Debug.Print("Connected"); }

        Send("0");
        clientObject.GetStream().BeginRead(new byte[] { 0 }, 0, 0, Read, null);
    }

我在这段代码的最后一行收到了上述错误。我做错了什么?我打电话给Connect()......我多年来一直盯着这个,我真的不知道我做错了什么。

发送代码:

    public void Send(string data)
    {
        using (StreamWriter w = new StreamWriter(clientObject.GetStream()))
        {
            w.WriteLine(data);
            w.Flush();
        }
    }

1 个答案:

答案 0 :(得分:2)

当处置StreamWriter时(在using块的末尾),使用的流也会关闭。

Send()方法之后,您尝试使用已关闭的流,从而产生所描述的异常。