我正在从事一个项目,我必须同时从多个IP地址接收数据,然后在数据网格视图中显示这些数据,每一行将始终显示来自特定IP的数据
我已经建立了Cleint连接,但我无法同时从多个IP接收数据(我可以从多个地址接收数据,但时间不同)。
我希望它像这张照片
这是我的代码:
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;
}
}