代码之家  ›  专栏  ›  技术社区  ›  JOO

使用udpClient从多个IP地址连续接收数据

  •  0
  • JOO  · 技术社区  · 3 年前

    我正在从事一个项目,我必须同时从多个IP地址接收数据,然后在数据网格视图中显示这些数据,每一行将始终显示来自特定IP的数据

    我已经建立了Cleint连接,但我无法同时从多个IP接收数据(我可以从多个地址接收数据,但时间不同)。 我希望它像这张照片 enter image description here

    这是我的代码:

    public void Recieve_Method()
        {
            IPAddress iPAddress = IPAddress.Any;
            IPEndPoint iPEndPoint = new IPEndPoint(iPAddress, 5700);
            udpserver = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
    
            try
            {
                udpserver.Bind(iPEndPoint);
            }
    
            catch (Exception e)
            {
    
                MessageBox.Show(e.ToString());
            }
        }
        public void Recieve_Data()
        {
            
            while (true)
            {
    
                EndPoint cleintIP = new IPEndPoint(IPAddress.Any, 5700);
                udpserver.ReceiveFrom(recvbuf, ref cleintIP);
                speicher_IP = Convert.ToString(cleintIP);
                speicher_IP = speicher_IP.Substring(0, speicher_IP.IndexOf(":"));
                recvbuf2 = recvbuf2.Concat(recvbuf).ToArray();
            }
    
    
        }
    
        public void LBL_Def()
        {
    
            txt_SN.Text = Convert.ToString(Grid_Allgemein.CurrentRow.Cells[0].Value);
            txt_S_SN.Text = txt_SN.Text;
            txt_IP.Text = Convert.ToString(Grid_Allgemein.CurrentRow.Cells[1].Value);
            lbl_Time.Text = "Zeit:  " + Convert.ToString(year_int) + "-"
                                                    + Convert.ToString(month_int) + "-"
                                                    + Convert.ToString(day_int) + "  "
                                                    + Convert.ToString(hour_int) + ":"
                                                    + Convert.ToString(minute_int) + ":"
                                                    + Convert.ToString(second_int)
                                                    ;
            if ((message1_L & 0x01) == 1)
            {
                Grid_Allgemein.Rows[0].Cells[7].Value = "Verbund";
            }
            else
            {
                if ((message2_L & 0x01) == 1)
                {
                    Grid_Allgemein.Rows[0].Cells[7].Value = "Aus";
                }
            }
            if ((message2_L & 0x10) == 0x10)
            {
                Grid_Allgemein.Rows[0].Cells[8].Value = "SM1!";
                Grid_Allgemein.Rows[0].Cells[8].Style.BackColor = Color.Red;
    
            }
    
    
        }
    
    0 回复  |  直到 3 年前