色女孩综合网_天天做天天添婷婷我也去 _日韩视频高清_草草影院免费

完善主體資料,免費贈送VIP會員!
* 主體類型
* 企業名稱
* 信用代碼
* 所在行業
* 企業規模
* 所在職位
* 姓名
* 所在行業
* 學歷
* 工作性質
請先選擇行業
您還可以選擇以下福利:
行業福利,領完即止!

下載app免費領取會員

NULL

ad.jpg

二次開發教程:C# udp小程序

發布于:2019-07-25 15:22:07

網友投稿

更多

學習udp,寫個小聊天程序,供以后查看


使用了MVVMLight


    /// <summary>

    /// This class contains properties that the main View can data bind to.

    /// <para>

    /// See http://www.mvvmlight.net

    /// </para>

    /// </summary>

    public class MainViewModel : ViewModelBase

    {

        private int port1 = 8981;

        private int port2 = 8982;

        private UdpClient user1 = null;//new UdpClient(8981);

        private UdpClient user2 = null;//new UdpClient(port2);

        private string hostname = "127.0.0.1";

        private readonly IDataService _dataService;

        /// <summary>

        /// The <see cref="WelcomeTitle" /> property's name.

        /// </summary>

        public const string WelcomeTitlePropertyName = "WelcomeTitle";

        private string _welcomeTitle = string.Empty;

        /// <summary>

        /// Gets the WelcomeTitle property.

        /// Changes to that property's value raise the PropertyChanged event. 

        /// </summary>

        public string WelcomeTitle

        {

            get

            {

                return _welcomeTitle;

            }

            set

            {

                Set(ref _welcomeTitle, value);

            }

        }


        /// <summary>

        /// Initializes a new instance of the MainViewModel class.

        /// </summary>

        public MainViewModel(IDataService dataService)

        {

            _dataService = dataService;

            _dataService.GetData(

                (item, error) =>

                {

                    if (error != null)

                    {

                        // Report error here

                        return;

                    }


                    WelcomeTitle = item.Title;

                });


            user1 = new UdpClient(port1);

            user2 = new UdpClient(port2);


            Task task1 = new Task(() =>

            {

                while (true)

                {

                    IPEndPoint remoteEP = null;

                    byte[] message = user1.Receive(ref remoteEP);

                    string msg = Encoding.UTF8.GetString(message);

                    msg = chatInfo + "\n" + msg;

                    Set(ref chatInfo, msg,false,nameof(ChatInfo));

                }

            });

            task1.Start();


            Task task2 = new Task(() =>

            {

                while (true)

                {

                    IPEndPoint remoteEP = null;

                    byte[] message = user2.Receive(ref remoteEP);

                    string msg = Encoding.UTF8.GetString(message);

                    msg = chatInfo + "\n" + msg;

                    Set(ref chatInfo, msg, false, nameof(ChatInfo));

                }

            });

            task2.Start();

        }



        private string chatInfo = string.Empty;

        public string ChatInfo

        {

            get

            {

                return chatInfo;

            }

            set

            {

                chatInfo = value;

            }

        }


        private string message1 = string.Empty;

        public string Message1

        {

            get

            {

                return message1;

            }

            set

            {

                // message1 = value;     

                Set(ref message1, value);

                RaisePropertyChanged(nameof(User1_Send));     

            }

        }


        private string message2 = string.Empty;

        public string Message2

        {

            get

            {

                return message2;

            }

            set

            {

                //message2 = value;

                Set(ref message2, value);

                RaisePropertyChanged(nameof(User2_Send));

            }

        }


        public ICommand User1_Send

        {

            get

            {

                return new RelayCommand(() =>

                {

                    message1 = "user1:" + message1;

                    byte[] msg = Encoding.UTF8.GetBytes(message1);

                    IPAddress id = IPAddress.Parse(hostname);

                    IPEndPoint ip = new IPEndPoint(id, port2);

                    user1.Send(msg, msg.Length, ip);

                    Set(ref message1, null,false,nameof(Message1));

                    RaisePropertyChanged(nameof(User1_Send));

                }, ()=> {

                    return !string.IsNullOrWhiteSpace(message1);

                });

            }

        }


        public ICommand User2_Send

        {

            get

            {

                return new RelayCommand(() =>

                {

                    message2 = "user2:" + message2;

                    byte[] msg = Encoding.UTF8.GetBytes(message2);

                    IPAddress id = IPAddress.Parse(hostname);

                    IPEndPoint ip = new IPEndPoint(id, port1);

                    user2.Send(msg, msg.Length, ip);

                    Set(ref message2, null, false, nameof(Message2));

                    RaisePropertyChanged(nameof(User2_Send));

                }, () => {

                    return !string.IsNullOrWhiteSpace(message2);

                });

            }

        }

        public override void Cleanup()

        {

            // Clean up if needed

            user1.Close();

            user2.Close();

            base.Cleanup();

        }

    }




xmal:


<Window x:Class="ChatDemo.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

        xmlns:ignore="http://www.galasoft.ch/ignore"

        mc:Ignorable="d ignore"

        SizeToContent="WidthAndHeight"

        Title="MVVM Light Application"

        DataContext="{Binding Main, Source={StaticResource Locator}}">

    

    <Window.Resources>

        <ResourceDictionary>

            <ResourceDictionary.MergedDictionaries>

                <ResourceDictionary Source="Skins/MainSkin.xaml" />

            </ResourceDictionary.MergedDictionaries>

        </ResourceDictionary>

    </Window.Resources>



    <Grid x:Name="LayoutRoot">

        <Grid.ColumnDefinitions>

            <ColumnDefinition/>

            <ColumnDefinition/>

        </Grid.ColumnDefinitions>

        <Grid.RowDefinitions>

            <RowDefinition/>

            <RowDefinition/>

            <RowDefinition/>

        </Grid.RowDefinitions>

        <TextBox  Text="{Binding Path=ChatInfo,UpdateSourceTrigger=PropertyChanged}" Grid.Row="0" Grid.Column="0" IsReadOnly="True"/>

        <TextBox  Text="{Binding Path=Message1,UpdateSourceTrigger=PropertyChanged}" Grid.Row="1" Grid.Column="0" Height="100"/>

        <Button  Content="發送" Command="{Binding Path=User1_Send}" Grid.Row="2" Grid.Column="0"/>

        <TextBox   Text="{Binding Path=ChatInfo,UpdateSourceTrigger=PropertyChanged}" Grid.Row="0" Grid.Column="1" IsReadOnly="True"/>

        <TextBox   Text="{Binding Path=Message2,UpdateSourceTrigger=PropertyChanged}" Grid.Row="1" Grid.Column="1" Height="100"/>

        <Button Content="發送" Command="{Binding Path=User2_Send}" Grid.Row="2" Grid.Column="1"/>

    </Grid>

</Window>

本文版權歸腿腿教學網及原創作者所有,未經授權,謝絕轉載。

未標題-1.jpg

上一篇:二次開發教程:C# 通過MVVMLight探索IOC

下一篇:二次開發教程:WPF 設置快捷鍵

60acb4e0ef112.png
色女孩综合网_天天做天天添婷婷我也去 _日韩视频高清_草草影院免费

    9000px;">

      在线免费观看不卡av| 国产精品77777| 欧美国产亚洲另类动漫| 日韩一区二区不卡| 欧美伦理电影网| 欧美日韩在线播| 欧美在线播放高清精品| 99精品桃花视频在线观看| 国产成人在线视频网站| 国产一区二区不卡在线| 国产精一区二区三区| 精品在线观看免费| 国产主播一区二区三区| 极品少妇一区二区三区精品视频| 理论电影国产精品| 国产伦精品一区二区三区免费迷| 国产精品亚洲午夜一区二区三区| 国产福利不卡视频| 丁香激情综合国产| 成人一区二区三区视频| 99久久国产综合色|国产精品| av中文字幕不卡| 91麻豆国产精品久久| 欧美特级限制片免费在线观看| 777亚洲妇女| 久久久久久久综合狠狠综合| 国产婷婷色一区二区三区| 欧美高清一级片在线观看| 中文字幕一区二区三区精华液| 国产精品美女久久久久久久久久久| 国产欧美日韩在线| 亚洲激情在线激情| 日本欧美久久久久免费播放网| 国产精品一区二区久久不卡| 99精品欧美一区二区三区小说 | 日韩欧美色综合网站| 精品国产三级a在线观看| 国产亚洲欧美一级| 亚洲精品国产一区二区三区四区在线| 婷婷一区二区三区| 高清不卡在线观看| 欧美日韩一区二区在线观看| 久久久久久久国产精品影院| 中文字幕制服丝袜成人av| 日韩电影免费一区| 99精品热视频| 久久午夜羞羞影院免费观看| 亚洲国产中文字幕在线视频综合 | 日韩av中文字幕一区二区| 国产91精品在线观看| 欧美日韩激情一区| 欧美国产丝袜视频| 欧美bbbbb| 91电影在线观看| 国产欧美一二三区| 日本欧美肥老太交大片| 99久久精品免费精品国产| 日韩精品一区二区三区在线| 亚洲免费看黄网站| 国产传媒日韩欧美成人| 欧美一区二区在线免费观看| 亚洲综合激情另类小说区| 国产99精品国产| 日韩欧美在线1卡| 亚洲午夜在线视频| 91丨国产丨九色丨pron| 国产视频一区二区在线观看| 亚洲aaa精品| 欧美系列在线观看| 中文字幕一区二区三区不卡| 国产一区 二区| 亚洲精品在线三区| 麻豆91在线播放免费| 欧美一区二区三区免费大片| 亚洲自拍欧美精品| 欧洲人成人精品| 亚洲国产日韩在线一区模特| 在线视频欧美精品| 亚洲综合成人在线视频| 日本韩国一区二区| 亚洲一区二区综合| 欧美在线啊v一区| 天堂资源在线中文精品| 欧美伊人久久大香线蕉综合69| 亚洲黄网站在线观看| 欧美亚洲愉拍一区二区| 亚洲综合区在线| 欧美日韩一区二区三区在线看| 午夜精品在线视频一区| 欧美日韩精品专区| 日韩电影在线一区二区三区| 欧美一级一区二区| 国产一区二区三区电影在线观看| 国产女同性恋一区二区| 成人黄页在线观看| 亚洲成人资源在线| 日韩欧美不卡在线观看视频| 韩国成人福利片在线播放| 久久免费国产精品| 成人黄色777网| 亚洲国产日产av| 欧美久久久久中文字幕| 美女高潮久久久| 国产精品久久久久久久岛一牛影视| 色综合久久综合| 日韩av电影一区| 日本一二三不卡| 欧美片网站yy| 国产成人av电影在线观看| 亚洲精品伦理在线| 精品国产一区二区亚洲人成毛片| 福利一区在线观看| 亚洲成人自拍偷拍| 国产无一区二区| 欧美一区二区黄| 91在线视频播放| 精品一区二区三区av| 亚洲一级不卡视频| 26uuu国产电影一区二区| 色诱视频网站一区| 久久99久国产精品黄毛片色诱| 国产精品萝li| 欧美一区二区三区视频在线观看| 成人午夜激情片| 久久精品国产久精国产爱| 中文字幕在线观看不卡视频| 日韩欧美亚洲另类制服综合在线 | 日韩成人精品在线观看| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 欧美怡红院视频| www.一区二区| 狠狠色丁香久久婷婷综| 亚洲免费在线观看| 欧美国产一区二区在线观看| 日韩一区二区三区精品视频| 在线观看亚洲一区| www.成人在线| 国产成人亚洲综合a∨猫咪| 蜜桃av一区二区三区| 亚洲3atv精品一区二区三区| 亚洲精品国产第一综合99久久 | 色哟哟欧美精品| 99re热视频这里只精品| 精品一区二区三区在线播放视频| 亚洲韩国精品一区| 亚洲精品成人少妇| 一区二区在线观看免费| 成人免费在线视频观看| 亚洲国产精品成人久久综合一区| 欧美成人猛片aaaaaaa| 91精品国产色综合久久不卡蜜臀| 欧美午夜理伦三级在线观看| 色哟哟精品一区| 91论坛在线播放| 色婷婷久久99综合精品jk白丝| 色综合天天狠狠| 91福利社在线观看| 在线观看区一区二| 欧美日韩国产综合视频在线观看 | 久久久国产精品午夜一区ai换脸| 久久综合成人精品亚洲另类欧美 | 成人a区在线观看| www.色精品| 91猫先生在线| 在线免费精品视频| 欧美日韩一区 二区 三区 久久精品| 日本国产一区二区| 56国语精品自产拍在线观看| 日韩欧美的一区| 国产欧美日韩精品a在线观看| 久久久精品黄色| 国产精品进线69影院| 亚洲天堂2014| 亚洲444eee在线观看| 麻豆一区二区三| 国产精品中文字幕日韩精品| 99精品欧美一区| 欧美日韩免费一区二区三区| 日韩欧美国产系列| 国产欧美日韩综合| 性做久久久久久免费观看欧美| 美国十次了思思久久精品导航| 国产很黄免费观看久久| 99国产精品国产精品久久| 在线亚洲免费视频| 91精品国产乱码| 国产精品嫩草影院com| 亚洲小少妇裸体bbw| 国内久久精品视频| 99久久精品国产导航| 欧美夫妻性生活| 国产精品美女www爽爽爽| 天堂一区二区在线| 波多野结衣中文字幕一区二区三区| 欧美视频日韩视频| 国产欧美日韩在线看| 日本中文在线一区| 99久久夜色精品国产网站| 日韩欧美精品在线视频| 一区二区三区在线视频免费 |