如何从UPD更新我返回的数据?

时间:2015-04-16 19:21:37

标签: c# matlab visual-studio udp

我的UDP连接到MATLAB有问题。我现在必须按一个按钮才能获取我发送的数据,并更新returnData

有没有解决方法,我已经考虑过while循环,但尚未找到解决方案,所以我希望有人在这里可以提供帮助。

另一个问题是,我在UDP连接方面遇到了一些麻烦。我想它是否能收到我发送的数据。现在,我必须按一个按钮才能打开和接收数据。我已经这样做了,因为我无法更新数据。

namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        //public UdpClient receivingUdpClient = null;
        public string returnData;
        //public byte[] Receive(ref IPEndPoint remoteEP);
        // private Print print = null;
        //while (true)
        //{
        public UdpClient receivingUdpClient = new UdpClient(8051);
        //bool done = false;
        //Creates an IPEndPoint to record the IP Address and port number of the sender.  
        // The IPEndPoint will allow you to read datagrams sent from any source.
        //while (true)
        //{
        public IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8051);

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            label1.Visible = false;
            label2.Visible = false;
        }

        void button1_Click(object sender, EventArgs e)
        {
            label1.Visible = false;
            try
            {
                //while (true)
                //{
                // Blocks until a message returns on this socket from a remote host.
                Byte[] receiveBytes = receivingUdpClient.Receive(ref RemoteIpEndPoint);

                returnData = Encoding.ASCII.GetString(receiveBytes);

                Console.WriteLine("This is the message you received " +
                                  returnData.ToString());
                Console.WriteLine("This message was sent from " +
                                  RemoteIpEndPoint.Address.ToString() +
                                  " on their port number " +
                                  RemoteIpEndPoint.Port.ToString());
                // }      
            }
            catch (Exception err)
            {
                Console.WriteLine(err.ToString());
            }

            if(returnData != String.Empty)
            {
                button2.PerformClick();
            }
        }

        void button2_Click(object sender, EventArgs e)
        {
            if (SPELL.Text == String.Empty)
            {
                SPELL.Text = SPELL.Text + returnData;
                label1.Visible = true;
            }
            else
            {
                SPELL.Text = null;
                SPELL.Text = SPELL.Text + returnData;
                label1.Visible = true;
                label2.Visible = true;
            }
        }
    }
}

到目前为止,这是我在Visual Studio中的小型测试程序。

0 个答案:

没有答案