Beispiel #1
0
        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);
                });
            }
        }
Beispiel #2
0
        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);
            }
        }