最近在研究modbus的TCP模式。连接服务器按钮代码如下:        private void bt_Connect_Click(object sender, EventArgs e)
        {
            /**************************************连接服务器*******************************************/
            IPAddress serverIP;
            IPEndPoint serverFullAddr;            serverIP = IPAddress.Parse("127.0.0.1");            serverFullAddr = new IPEndPoint(serverIP,502);            socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
            socket.Connect(serverFullAddr);
            /**************************************多线程接收******************************************/
            Thread t = new Thread(new ThreadStart(RecevieMsg));
            t.Name = "Recive Name";
            t.IsBackground = true;
            t.Start();
        }
发送数据按钮代码如下:      //发送按钮
        private void bt_Send_Click(object sender, EventArgs e)
        {
            byte[] message = new byte[6];            message[0] = 2;
            message[1] = 3;
            message[2] = (byte)(0 >> 8);
            message[3] = (byte)0;
            message[4] = (byte)(1 >> 8);
            message[5] = (byte)1;           
            socket.Send(message);
        }
多线程接收数据代码如下:     private void RecevieMsg()
        {
            while (true)
            {
                byte[] recevie = new byte[1024];                socket.Receive(recevie);
                MessageBox.Show(recevie[5].ToString());
            }
        }
现在的问题是->我在界面上点两次发送按钮,才会弹出一次messageBox..或者在发送按钮中写两行  socket.Send(message);不知道这是何道理,有办法解决么?
希望高手指点。
万分感谢!!!!!