Beispiel #1
0
        public void Broadcast(DataType type)
        {
            Datagram dataGram = new Datagram
            {
                MessageType = type,
                IPFrom      = Config.LocalIPAddress,
                IPTo        = "",
                Content     = Dns.GetHostName()
            };

            this.m_BroadcastSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
            this.m_BroadcastSocket.SendTo(Encoding.Default.GetBytes(dataGram.ToString()), m_BroadcastPoint);
        }
Beispiel #2
0
        private void AnalysisData(Datagram data)
        {
            Contact contact = new Contact(data.Message, data.FromAddress, ComunicationState.Waiting, new IPEndPoint(IPAddress.Parse(data.FromAddress), Config.ListenPort));

            //if (!contact.Compare(Config.LocalIPAddress))
            //{
            switch (data.Type)
            {
            case DatagramType.OnLine:
                this.OnLineEvent(contact);
                Datagram sendDataGram = new Datagram(DatagramType.GiveInfo);
                this.m_ListenSocket.SendTo(Encoding.Default.GetBytes(sendDataGram.ToString()), new IPEndPoint(IPAddress.Parse(data.FromAddress), Config.ListenPort));
                break;

            case DatagramType.GiveInfo:
                if (!contact.Compare(Config.LocalIPAddress))
                {
                    this.OnLineEvent(contact);
                }
                break;

            case DatagramType.DownLine:
                this.DownLineEvent(contact);
                break;

            case DatagramType.Chat:
                Contact chatContact = ContactList.GetContact(data.FromAddress);
                if (!object.Equals(chatContact, null))
                {
                    if (chatContact.State == ComunicationState.Talking)
                    {
                        chatContact.Message = data.Message;
                        this.OnChatEvent(chatContact);
                    }
                    else
                    {
                        chatContact.Message = data.Message;
                        MessageInfo messageInfo = new MessageInfo(chatContact, DateTime.Now);
                        QueueMessage.Add(messageInfo);
                        this.OnChatEvent(chatContact);
                    }
                }
                break;
            }
            //}
        }