public UDPApp(int portLocal, int portRemote, MyOPC opc, LoggerClass log) { //创建一个UdpClient对象,0表示系统自动分配发送端口 udpApp = new UdpClient(portLocal); //连接到服务端并指定接收端口 udpApp.Connect("localhost", portRemote); this.opc = opc; this.log = log; //设置远程主机,(IPAddress.Any, 0)代表接收所有IP所有端口发送的数据 //或 IPEndPoint remoteIpEndPoint = null; remoteIpEndPoint = new IPEndPoint(IPAddress.Any, portRemote); }
private void Form1_Load(object sender, EventArgs e) { listView1.Columns.Add("ClientHandles"); listView1.Columns.Add("Tag值"); listView1.Columns.Add("品质"); listView1.Columns.Add("时间戳"); listView1.Items.Add("端口1"); listView1.Items.Add("端口2"); listView1.Items.Add("端口3"); listView1.Items[0].SubItems.Add("等待数据"); listView1.Items[0].SubItems.Add("等待数据"); listView1.Items[0].SubItems.Add("未启动"); listView1.Items[1].SubItems.Add("等待数据"); listView1.Items[1].SubItems.Add("等待数据"); listView1.Items[1].SubItems.Add("未启动"); listView1.Items[2].SubItems.Add("等待数据"); listView1.Items[2].SubItems.Add("等待数据"); listView1.Items[2].SubItems.Add("未启动"); listView1.Items[0].Text = "aa"; listView1.Items[0].SubItems[1].Text = "bb"; listView1.Items[0].SubItems[1].Text = "cc"; //listView1.Items[0].SubItems.Add("等待数据1"); //listView1.Items[0].SubItems.Add("等待数据1"); //listView1.Items[0].SubItems.Add("未启动1"); //GetLocalServer(); LoggerClass log = new LoggerClass(); Config cfg = new Config(log); MyOPC mp = new MyOPC(log, cfg); object serverList = mp.GetOPCServer(mp.GetHostName(mp.GetLocalIP())); foreach (string turn in (Array)serverList) { cmbServerName.Items.Add(turn); } }
private void Form2_Load(object sender, EventArgs e) { log = new LoggerClass("./log", EnumLogLevel.LogLevelAll, true, 100); cfg = new Config(log); mo = new MyOPC(log, cfg); // opc程序UDP端口8765,显示程序UDP端口5678 udp = new UDPApp(8765, 5678, mo, log); object serverList = mo.GetOPCServer(mo.GetHostName(mo.GetLocalIP())); foreach (string turn in (Array)serverList) { comboBox1.Items.Add(turn); } comboBox1.SelectedIndex = 0; if (cfg.Main.IsUseConfig) { listView1.Columns.Add("Tag名"); } else { listView1.Columns.Add("句柄"); } listView1.Columns.Add("Tag值"); listView1.Columns.Add("品质"); listView1.Columns.Add("时间戳"); listView1.Items.Add("端口1"); listView1.Items.Add("端口2"); listView1.Items.Add("端口3"); listView1.Items.Add("端口4"); listView1.Items.Add("端口5"); listView1.Items.Add("端口6"); listView1.Items[0].SubItems.Add("等待数据"); listView1.Items[0].SubItems.Add("等待数据"); listView1.Items[0].SubItems.Add("未启动"); listView1.Items[1].SubItems.Add("等待数据"); listView1.Items[1].SubItems.Add("等待数据"); listView1.Items[1].SubItems.Add("未启动"); listView1.Items[2].SubItems.Add("等待数据"); listView1.Items[2].SubItems.Add("等待数据"); listView1.Items[2].SubItems.Add("未启动"); listView1.Items[3].SubItems.Add("等待数据"); listView1.Items[3].SubItems.Add("等待数据"); listView1.Items[3].SubItems.Add("未启动"); listView1.Items[4].SubItems.Add("等待数据"); listView1.Items[4].SubItems.Add("等待数据"); listView1.Items[4].SubItems.Add("未启动"); listView1.Items[5].SubItems.Add("等待数据"); listView1.Items[5].SubItems.Add("等待数据"); listView1.Items[5].SubItems.Add("未启动"); Task.Factory.StartNew(() => { udp.Receive(); }); }