private void p5_cmd_handler(IPEndPoint remote, Cmd cmd_base) { if (cmd_base is BroadcastIpListCmd) { BroadcastIpListCmd cmd = cmd_base as BroadcastIpListCmd; int size = cmd.ips == null ? 0 : cmd.ips.Length; for (int i = 0; i < size; i++) { ConfirmIpCmd ack = new ConfirmIpCmd(); ack.ip = cmd.ips[i]; ack.sender_name = this_name; _p2_udp_peer.SendMessage( new IPEndPoint(IPAddress.Parse(ack.ip), remote.Port), ack); } } else if (cmd_base is BroadcastAddressCmd) { if (_p5_tcp_client != null && _p5_tcp_client.Connected) { return; } BroadcastAddressCmd cmd = cmd_base as BroadcastAddressCmd; Helper.set_text(this.lblP5Ip, string.Format("{0}:{1}", cmd.ip, cmd.port)); Task.Factory.StartNew(() => { start_p5_tcp_client(); connect_p5_tcp_client(cmd.ip, cmd.port); }); } }
private void p4_udp_handler(IPEndPoint remote, Cmd cmd_base) { if (cmd_base is ConfirmIpCmd) { ConfirmIpCmd cmd = cmd_base as ConfirmIpCmd; BroadcastAddressCmd ack = new BroadcastAddressCmd(); ack.sender_name = this_name; ack.ip = cmd.ip; ack.port = Helper.p1_tcp_listen_port; _p1_udp_peer.SendMessage( new IPEndPoint(IPAddress.Parse(ack.ip), remote.Port), ack); } }