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

完善主體資料,免費贈送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;">

      久久精品一二三| 91视频.com| 99国内精品久久| 亚洲欧美激情一区二区| av在线播放一区二区三区| 久久久午夜电影| 99免费精品在线| 亚洲精品日韩综合观看成人91| 色婷婷综合久色| 午夜国产精品一区| 精品粉嫩超白一线天av| 成人国产精品视频| 亚洲国产一区二区三区青草影视| 91麻豆精品91久久久久久清纯| 美女www一区二区| 亚洲国产精品国自产拍av| 91亚洲精品一区二区乱码| 亚洲a一区二区| 中文在线一区二区| 欧美日韩国产高清一区二区| 国产又粗又猛又爽又黄91精品| 国产无一区二区| 欧美高清视频一二三区| 福利视频网站一区二区三区| 一区二区三区免费网站| 久久青草欧美一区二区三区| 欧美三级乱人伦电影| 国产一区二区主播在线| 亚洲一区二区欧美激情| 久久久久成人黄色影片| 91精品国产综合久久精品app| 成人网页在线观看| 琪琪久久久久日韩精品| 亚洲视频中文字幕| 久久夜色精品一区| 日韩一级二级三级| 欧美情侣在线播放| 91国产丝袜在线播放| 国产成人精品免费网站| 日本成人在线电影网| 亚洲日本免费电影| 国产精品麻豆久久久| 日韩欧美国产1| 91色婷婷久久久久合中文| 国产激情一区二区三区| 看电影不卡的网站| 日韩电影在线一区| 五月综合激情日本mⅴ| 一区二区三区日本| 一区二区高清免费观看影视大全 | 夜夜亚洲天天久久| 亚洲欧洲日本在线| 国产精品天干天干在观线| 日韩欧美一级在线播放| 91精品国产综合久久蜜臀| 欧美日韩国产小视频在线观看| av在线播放不卡| 9人人澡人人爽人人精品| 粗大黑人巨茎大战欧美成人| 国产传媒欧美日韩成人| 国产成人免费高清| caoporm超碰国产精品| 99v久久综合狠狠综合久久| 91免费版在线看| 一本一道综合狠狠老| 欧美亚洲国产一区在线观看网站| 欧美日韩一级片网站| 欧美一区二区三区色| 2欧美一区二区三区在线观看视频| 日韩欧美色综合| 国产目拍亚洲精品99久久精品| 国产精品色一区二区三区| 亚洲男人的天堂在线观看| 亚洲成人激情自拍| 国产一区二区三区精品欧美日韩一区二区三区| 激情文学综合丁香| 91啪亚洲精品| 欧美一级片在线| 久久久久久久av麻豆果冻| 中文在线免费一区三区高中清不卡| 中文字幕第一区第二区| 亚洲欧洲日本在线| 男人的天堂亚洲一区| 国产一区在线精品| 欧美亚洲国产bt| 国产丝袜欧美中文另类| 亚洲精品视频在线看| 美女爽到高潮91| 色哟哟国产精品| 亚洲精品一区二区三区影院 | 日本va欧美va精品发布| 国内久久精品视频| 91福利国产精品| 国产婷婷色一区二区三区四区| 亚洲综合自拍偷拍| 国产又黄又大久久| 欧美色欧美亚洲另类二区| 国产亚洲女人久久久久毛片| 亚洲动漫第一页| 国产一区二区精品久久| 欧美午夜影院一区| 中文字幕亚洲区| 国产一区二区免费看| 欧美日韩视频在线观看一区二区三区 | 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 五月天国产精品| www.视频一区| 久久综合av免费| 蜜臀久久99精品久久久久久9| 91日韩在线专区| 国产精品―色哟哟| 国产suv一区二区三区88区| 欧美一级精品在线| 亚洲第一成人在线| 欧美性猛片xxxx免费看久爱| 国产精品进线69影院| 国产麻豆精品在线观看| 日韩免费在线观看| 日韩中文字幕亚洲一区二区va在线 | 成人激情文学综合网| 精品国产污污免费网站入口| 午夜视频在线观看一区| 欧美性色欧美a在线播放| 亚洲老司机在线| 91免费看`日韩一区二区| √…a在线天堂一区| 成人h精品动漫一区二区三区| 国产日韩欧美激情| 波多野结衣一区二区三区| 国产精品蜜臀在线观看| 成人午夜av电影| 1000部国产精品成人观看| 成人短视频下载| 亚洲精品免费在线观看| 色就色 综合激情| 亚洲一区二区三区国产| 91精品欧美福利在线观看| 精品一区二区免费在线观看| 久久久久久久精| 91免费观看视频在线| 亚洲高清在线精品| 日韩一区二区三区四区| 国产制服丝袜一区| 中文字幕欧美激情| 在线观看视频欧美| 久久电影网电视剧免费观看| 日本一区二区三区dvd视频在线| 国产91富婆露脸刺激对白| 综合久久综合久久| 欧美一区二区视频在线观看2020| 国产一二精品视频| 亚洲综合在线观看视频| 91麻豆精品国产自产在线| 国产精品一区二区三区四区| 亚洲免费在线视频一区 二区| 欧美区一区二区三区| 国产成人aaa| 五月婷婷欧美视频| 久久久99久久精品欧美| 日本精品免费观看高清观看| 日本强好片久久久久久aaa| 中文字幕第一区二区| 91精品国产91久久综合桃花 | 日本一区二区三区国色天香| 欧美性色aⅴ视频一区日韩精品| 激情综合色丁香一区二区| 综合久久久久久| 精品国精品自拍自在线| 一本久久a久久精品亚洲| 老司机一区二区| 亚洲精品一卡二卡| 国产精品视频一二三| 日韩一区二区影院| 在线精品亚洲一区二区不卡| 国产成人精品免费网站| 日韩制服丝袜av| 亚洲精品国产a| 亚洲国产精华液网站w| 亚洲精品一区二区三区在线观看| 欧美日韩一区二区三区免费看| 波多野结衣视频一区| 精品一区二区免费看| 日韩中文字幕亚洲一区二区va在线 | 亚洲国产精品人人做人人爽| 国产亚洲欧洲997久久综合| 欧美电视剧免费观看| 欧美乱熟臀69xxxxxx| 91久久精品日日躁夜夜躁欧美| 国产精品一区专区| 奇米色一区二区三区四区| 亚洲一区二区三区视频在线| 亚洲欧美偷拍卡通变态| 国产精品国产a| 中文字幕国产一区| 中文字幕在线一区| 国产精品福利电影一区二区三区四区| 久久美女高清视频| 久久久美女毛片| 国产欧美一区二区精品忘忧草| 久久久久亚洲蜜桃|