예제 #1
0
        // Ожидание Broadcast пакетов новых пользователей
        private void ListenUDP()
        {
            var udpListener = new UdpClient(udp_port);

            udpListener.EnableBroadcast = true;
            while (true)
            {
                IPEndPoint host         = null;
                var        receivedData = udpListener.Receive(ref host);
                if (alive)
                {
                    if (!host.Address.Equals(localIP))
                    {
                        if (!isConnected(host.Address))
                        {
                            var chatter = new ChatParticipant();
                            chatter.tcp_port    = tcp_port;
                            chatter.IPv4Address = host.Address;
                            string message = Encoding.Unicode.GetString(receivedData);
                            DisplayMessage(message, true);
                            chatter.Connect();
                            chatter.SendMessage(" подключился!", username, localIP.ToString(), CONNECT);
                            chatter.SendMessage(tbChat.Text, username, localIP.ToString(), SENDHISTORY);
                            Chatters.Add(chatter);
                            Task.Factory.StartNew(() => ListenChatter(Chatters[Chatters.IndexOf(chatter)]));
                        }
                    }
                }
            }
        }
예제 #2
0
        // Ожидание подключений
        private void ListenForConnections()
        {
            tcpListener = new TcpListener(localIP, tcp_port);
            tcpListener.Start();
            while (alive)
            {
                if (tcpListener.Pending())
                {
                    var chatter = new ChatParticipant();
                    chatter.tcpClient = tcpListener.AcceptTcpClient();

                    chatter.IPv4Address = ((IPEndPoint)chatter.tcpClient.Client.RemoteEndPoint).Address;


                    chatter.stream = chatter.tcpClient.GetStream();
                    chatter.SendMessage(" подключился!", username, localIP.ToString(), CONNECT);
                    Chatters.Add(chatter);
                    Task.Factory.StartNew(() => ListenChatter(chatter));
                }
            }
            tcpListener.Stop();
        }