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

完善主體資料,免費(fèi)贈送VIP會員!
* 主體類型
* 企業(yè)名稱
* 信用代碼
* 所在行業(yè)
* 企業(yè)規(guī)模
* 所在職位
* 姓名
* 所在行業(yè)
* 學(xué)歷
* 工作性質(zhì)
請先選擇行業(yè)
您還可以選擇以下福利:
行業(yè)福利,領(lǐng)完即止!

下載app免費(fèi)領(lǐng)取會員

NULL

ad.jpg

二次開發(fā)教程:C# udp小程序

發(fā)布于:2019-07-25 15:22:07

網(wǎng)友投稿

更多

學(xué)習(xí)udp,寫個(gè)小聊天程序,供以后查看


使用了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="發(fā)送" 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="發(fā)送" Command="{Binding Path=User2_Send}" Grid.Row="2" Grid.Column="1"/>

    </Grid>

</Window>

本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。

未標(biāo)題-1.jpg

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

下一篇:二次開發(fā)教程:WPF 設(shè)置快捷鍵

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

    9000px;">

      国产欧美日韩三级| 亚洲一卡二卡三卡四卡| 欧美日韩精品一二三区| 国产一区二区在线观看视频| 日韩av中文字幕一区二区三区| 亚洲国产一二三| 中文字幕亚洲一区二区av在线 | 亚洲成人av电影| 亚洲日本在线视频观看| 国产精品色在线观看| 精品国产免费久久| 欧美一级在线免费| 欧美肥妇bbw| 欧美日韩在线一区二区| 欧美视频中文一区二区三区在线观看| 91在线观看地址| 国产 日韩 欧美大片| 国产美女主播视频一区| 久久99精品一区二区三区三区| 一区二区三区四区蜜桃| 欧美国产精品劲爆| 一区精品在线播放| 亚洲日本va在线观看| 亚洲最大成人网4388xx| 日韩黄色片在线观看| 免费欧美在线视频| 国产一区日韩二区欧美三区| 东方欧美亚洲色图在线| 国产成人av福利| 国精产品一区一区三区mba桃花| 久久av中文字幕片| 国内精品嫩模私拍在线| 精品一区二区三区久久| 国产精品资源在线看| 国产精品亚洲一区二区三区妖精| 国产91精品露脸国语对白| 成人免费高清在线| 在线免费一区三区| 欧美精品一区二区在线观看| 国产精品入口麻豆原神| 2020国产精品自拍| 自拍av一区二区三区| 亚洲欧美激情小说另类| 日本欧美一区二区| 懂色中文一区二区在线播放| 91片在线免费观看| 69p69国产精品| 久久久久一区二区三区四区| 亚洲一区在线观看网站| 麻豆国产精品777777在线| 成人免费三级在线| 欧美成人r级一区二区三区| 中文字幕视频一区| 婷婷成人综合网| 91亚洲精华国产精华精华液| 精品日韩欧美在线| 亚洲成人综合在线| 成人动漫中文字幕| 久久综合九色综合97_久久久| 国产精品不卡一区| 国产寡妇亲子伦一区二区| 91精品国产综合久久久久久漫画 | 精品久久久久久久人人人人传媒 | 日韩一区和二区| 亚洲欧美日韩国产综合在线| 麻豆精品国产传媒mv男同| 99re这里只有精品首页| 欧美tickle裸体挠脚心vk| 亚洲人成网站色在线观看| 国产美女娇喘av呻吟久久| 欧美中文字幕一区二区三区| 久久久蜜桃精品| 一区二区三区不卡在线观看| 99久久精品国产毛片| 国产午夜精品理论片a级大结局| 男人的天堂久久精品| 欧美日韩中字一区| 国产精品亲子伦对白| 国产一区二三区好的| 欧美日韩精品欧美日韩精品| 国产精品国产三级国产普通话三级 | 日韩午夜激情免费电影| 成人欧美一区二区三区视频网页| 国产福利不卡视频| 精品国产乱码91久久久久久网站| 无吗不卡中文字幕| 欧美日韩和欧美的一区二区| 亚洲综合一区二区三区| 91色.com| 午夜天堂影视香蕉久久| 宅男在线国产精品| 美女视频网站黄色亚洲| 欧美成人三级在线| 国产高清在线精品| 亚洲日本在线看| 欧美亚洲日本国产| 亚洲激情一二三区| 色综合视频在线观看| 亚洲嫩草精品久久| 欧美日韩国产另类一区| 美女视频免费一区| 欧美国产综合一区二区| 91亚洲精品久久久蜜桃网站| 亚洲国产精品自拍| 精品国产a毛片| 成人高清免费观看| 五月激情综合色| xf在线a精品一区二区视频网站| 韩国精品主播一区二区在线观看| 久久精品人人做| 91美女蜜桃在线| 日韩电影免费一区| 国产午夜精品理论片a级大结局| 色偷偷久久人人79超碰人人澡 | 久久综合色婷婷| 91麻豆国产福利精品| 奇米一区二区三区av| 国产精品私人影院| 欧美一区二区三区在线电影| 成人蜜臀av电影| 天堂成人免费av电影一区| 国产精品久久久久天堂| 欧美精品第一页| 国产91精品久久久久久久网曝门| 亚洲一区二区三区四区中文字幕 | 国产精品初高中害羞小美女文| 欧美精品v日韩精品v韩国精品v| 国产一区二区三区黄视频| 亚洲一区视频在线| 国产日产亚洲精品系列| 91精品国产aⅴ一区二区| 成人综合婷婷国产精品久久蜜臀| 亚洲成av人综合在线观看| 欧美激情一区二区三区全黄| 日韩一级二级三级精品视频| 91麻豆免费观看| 国产成a人亚洲| 美女网站色91| 天天色 色综合| 亚洲人被黑人高潮完整版| 精品国产电影一区二区| 欧美亚洲丝袜传媒另类| 99riav一区二区三区| 国产黄色成人av| 韩国av一区二区三区四区| 日韩成人一级大片| 亚洲国产综合在线| 国产精品国产三级国产a| 精品国产一二三区| 日韩精品一区二区在线| 欧美精品第1页| 69堂亚洲精品首页| 91精品国产色综合久久ai换脸| 欧美四级电影在线观看| 91精品福利视频| 91福利精品视频| 色国产精品一区在线观看| 91免费在线视频观看| 91免费看片在线观看| 成人av资源站| 99久久精品国产观看| av不卡在线播放| av中文字幕亚洲| 91在线观看一区二区| 99re视频精品| 在线一区二区三区四区五区| 色婷婷综合久久久中文字幕| 在线亚洲免费视频| 欧美日韩中文字幕一区| 91精品国产综合久久精品| 日韩一级黄色大片| 久久精品视频在线看| 中文子幕无线码一区tr| 日韩理论片中文av| 午夜视频一区二区三区| 青草国产精品久久久久久| 麻豆国产91在线播放| 国产成人亚洲综合a∨婷婷图片| 粉嫩嫩av羞羞动漫久久久| 91国产视频在线观看| 欧美日韩国产一级片| 精品美女被调教视频大全网站| 欧美激情中文字幕| 亚洲精品自拍动漫在线| 亚洲国产va精品久久久不卡综合| 美腿丝袜在线亚洲一区| 国产成人免费在线视频| 91老司机福利 在线| 制服丝袜国产精品| 中文字幕一区日韩精品欧美| 午夜久久久久久久久| 成人性生交大片免费看中文 | 奇米影视在线99精品| 成人av在线看| 91精品国产乱码久久蜜臀| 国产精品天天摸av网| 肉丝袜脚交视频一区二区| 懂色中文一区二区在线播放| 日韩一区和二区| 亚洲精品视频在线观看免费 |