Windows8 udp广播局域网聊天程序

来源:互联网 发布:淘宝刷流量 猎流 编辑:程序博客网 时间:2024/04/30 05:31

根据 Windows 应用商店应用的 Windows API 参考 (Windows) 所作的一个     简单的Windows8 udp广播局域网聊天程序

程序界面如下

程序界面

主要程序代码

        private async void Page_Loaded_1(object sender, RoutedEventArgs e)        {            try            {                socket = new DatagramSocket();                socket.MessageReceived += socket_MessageReceived;                await socket.BindServiceNameAsync("11000");            }            catch (Exception ex)            {                throw ex;            }        }        async void socket_MessageReceived(DatagramSocket sender, DatagramSocketMessageReceivedEventArgs args)        {            IBuffer buffer;            try            {                IOutputStream outputStream = await sender.GetOutputStreamAsync(args.RemoteAddress, args.RemotePort);                buffer = args.GetDataReader().DetachBuffer();                byte[] bytes = new byte[buffer.Length];                WindowsRuntimeBufferExtensions.CopyTo(buffer, bytes);                string str;                str = Encoding.Unicode.GetString(bytes, 0, bytes.Length);                text_receive = text_receive+ "\n" + str;                await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>                {                    this.rBox_receive.Document.SetText(Windows.UI.Text.TextSetOptions.None,text_receive);                });            }            catch (Exception ex)            {                throw ex;            }            //throw new NotImplementedException();        }        private async void button_send_Click(object sender, RoutedEventArgs e)        {            try            {                HostName remoteHost = new HostName("255.255.255.255");                IOutputStream output = await socket.GetOutputStreamAsync(remoteHost, "11000");                string str = NetworkInformation.GetHostNames()[2].CanonicalName;                string str1;                rBox_send.Document.GetText(Windows.UI.Text.TextGetOptions.None,out str1);                str = str + " : " + str1;                Byte[] sendBytes = Encoding.Unicode.GetBytes(str);                await output.WriteAsync(sendBytes.AsBuffer());                rBox_send.Document.SetText(Windows.UI.Text.TextSetOptions.None, "");            }            catch (Exception ex)            {                throw ex;            }        }


此项目参考"传智播客.net培训Windows 8开发视频教程"

源代码下载地址

http://pan.baidu.com/share/link?shareid=114923&uk=1007973625

原创粉丝点击