我是否必须为我发送的每封邮件创建一个新的TcpClient?

时间:2016-01-18 21:27:56

标签: c# sockets tcpclient

我在尝试发送多条TCP消息时仍然感到沮丧。我不知道我在客户端需要做什么。我尝试过使用Socket对象和TcpClient对象。我可以发送一条没有问题的消息。但是,我需要做什么才能发送第二条消息?我是否必须丢弃套接字或TcpClient并创建一个新套接字?我还没有能够得到第二条消息。

这是我最近尝试使用TcpClient。它发送一条消息并成功显示响应。但是当我在while循环中的第一个语句上放置断点并在发送第二条消息之前查看客户端对象时,我发现客户端的Connected属性为false。但是在下一行,当我尝试调用Connect()时,会抛出一个异常,声称该对象已经连接。

有人可以解释一下发生了什么,以及我要做什么?

        TcpClient client = new TcpClient();

        while (true)
        {

            // Translate the passed message into ASCII and store it as a Byte array.
            Byte[] data = System.Text.Encoding.ASCII.GetBytes("This message came from the client.");

            client.Connect("127.0.0.1", 5001);

            NetworkStream stream = client.GetStream();

            // Send the message to the connected TcpServer. 
            stream.Write(data, 0, data.Length);

            // Receive the TcpServer.response.

            // Buffer to store the response bytes.
            data = new Byte[1024];

            // String to store the response ASCII representation.
            String responseData = String.Empty;

            // Read the first batch of the TcpServer response bytes.
            Int32 bytes = stream.Read(data, 0, data.Length);
            responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
            stream.Close();

            if (MessageBox.Show("Reply: " + responseData + "  Try again?", "Try again?", MessageBoxButtons.YesNo) == DialogResult.No)
            {
                break;
            }

        }

0 个答案:

没有答案