Esempio n. 1
0
        public void ReceiveCallBack(IAsyncResult Result)
        {
            var Args      = (object[])Result.AsyncState;
            var UdpClient = (UdpClient)Args[0];

            byte[] Data    = UdpClient.EndReceive(Result, ref _LocalEntryPoint);
            string Message = Encoding.ASCII.GetString(Data);

            string[] MessageParts = Message.Split(':');
            switch (MessageParts[0])
            {
            case "iam":
                Host.AddHost(MessageParts[1], _LocalEntryPoint.Address.ToString(), _LocalEntryPoint.Port.ToString());
                break;

            case "give":
                SearchWindow.Search(MessageParts[1], _LocalEntryPoint.Address.ToString());
                break;

            case "have":
                SearchWindow.NewResult(MessageParts[1], MessageParts[2], _LocalEntryPoint.Address.ToString());
                break;
            }
            UdpClient.BeginReceive(ReceiveCallBack, Args);
        }