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

完善主體資料,免費(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一区二区国产馆| 一区二区三区四区视频精品免费| 精品国产乱码91久久久久久网站| 在线精品视频免费观看| 国产乱码精品1区2区3区| 午夜电影网亚洲视频| 国产精品欧美久久久久无广告| 欧美高清视频一二三区 | 色综合久久久久久久久久久| 麻豆高清免费国产一区| 亚洲裸体在线观看| 国产亚洲欧美中文| 8x8x8国产精品| 一本到高清视频免费精品| 成人网在线播放| 国产一区二区三区在线观看精品| 亚洲成av人片| 亚洲免费看黄网站| 国产精品乱码一区二三区小蝌蚪| 欧美成人女星排名| 日韩视频一区二区三区在线播放| 在线亚洲+欧美+日本专区| www.欧美日韩| 风间由美中文字幕在线看视频国产欧美| 免费成人深夜小野草| 亚洲成va人在线观看| 亚洲一区中文在线| 综合激情成人伊人| 中文字幕一区日韩精品欧美| 久久久av毛片精品| 精品88久久久久88久久久 | 亚洲欧洲综合另类| 亚洲视频1区2区| 国产精品人妖ts系列视频| 久久久久久久久久久99999| 91精品国模一区二区三区| 欧美丰满少妇xxxbbb| 欧美肥妇bbw| 91麻豆精品国产91久久久久久| 91福利视频久久久久| 色婷婷国产精品| 色88888久久久久久影院野外 | 在线欧美日韩国产| 欧美写真视频网站| 欧美亚洲国产一区二区三区| 欧美日韩一区二区在线观看视频| 欧美综合色免费| 精品视频一区 二区 三区| 欧美精品免费视频| 精品久久久久久久一区二区蜜臀| 欧美成人aa大片| 久久久精品天堂| **网站欧美大片在线观看| 亚洲色图制服丝袜| 亚洲mv大片欧洲mv大片精品| 日韩高清不卡一区二区三区| 美女国产一区二区三区| 久久国产精品免费| 国产成人亚洲综合色影视| jiyouzz国产精品久久| 色婷婷国产精品| 欧美日韩国产精品自在自线| 91精品国产乱| 久久九九影视网| 中文字幕一区二区三区av| 亚洲成av人片在线| 久久精品国产第一区二区三区| 国产美女主播视频一区| 丁香婷婷综合网| 精品视频在线视频| 久久亚洲精品国产精品紫薇| 综合婷婷亚洲小说| 免费在线成人网| 高清成人免费视频| 欧美人与禽zozo性伦| 久久精品日韩一区二区三区| 亚洲精品中文字幕乱码三区| 日本在线观看不卡视频| 成人不卡免费av| 69av一区二区三区| 国产精品久久久久四虎| 日本怡春院一区二区| 不卡的看片网站| 日韩欧美在线观看一区二区三区| 中文字幕中文乱码欧美一区二区| 一区二区三区丝袜| 极品美女销魂一区二区三区免费| 91社区在线播放| 久久免费电影网| 亚洲一区二区成人在线观看| 国产成人鲁色资源国产91色综| 欧美亚洲免费在线一区| 欧美激情在线一区二区| 日日摸夜夜添夜夜添亚洲女人| 高清不卡在线观看| 日韩欧美成人午夜| 一区二区三区精品在线| 粉嫩一区二区三区性色av| 3atv一区二区三区| 亚洲男同性视频| 国产一区二区毛片| 91精品国产91久久久久久最新毛片 | 在线综合视频播放| 亚洲综合成人网| 国产精品99久久久久久久女警| 色又黄又爽网站www久久| 久久久久久久久久久电影| 日av在线不卡| 欧美性猛交xxxxxx富婆| 欧美高清在线视频| 美女mm1313爽爽久久久蜜臀| 在线亚洲一区二区| 亚洲欧美怡红院| av在线播放一区二区三区| 99这里都是精品| 337p亚洲精品色噜噜噜| 一区二区成人在线视频| 99久久99久久免费精品蜜臀| 一级日本不卡的影视| 国产成人亚洲综合a∨婷婷图片| 日韩一区二区视频| 日韩精品免费专区| 欧美人狂配大交3d怪物一区| 一区二区三区丝袜| 色哟哟欧美精品| 亚洲少妇最新在线视频| 99麻豆久久久国产精品免费| 国产欧美日韩综合| 国产美女娇喘av呻吟久久| 日韩视频一区二区三区在线播放| 免费精品视频在线| 4438成人网| 日本中文字幕一区| 日韩午夜av一区| 美腿丝袜亚洲三区| 欧美一区二区视频网站| 麻豆精品久久久| 精品处破学生在线二十三| 激情成人综合网| 久久精品亚洲麻豆av一区二区| 久久国产精品99精品国产| 欧美一卡二卡在线| 美女视频一区二区| 亚洲精品在线三区| 国产精品一线二线三线精华| 欧美国产在线观看| 97久久超碰国产精品| 亚洲精品乱码久久久久久久久| 91久久线看在观草草青青| 亚洲18女电影在线观看| 日韩女优电影在线观看| 国产精品一区二区免费不卡| 国产片一区二区三区| 99久久国产综合精品女不卡| 亚洲精选视频在线| 欧美一区二区视频在线观看| 狠狠色丁香久久婷婷综合丁香| 国产亚洲精品资源在线26u| 成人的网站免费观看| 亚洲一区二区三区中文字幕| 91精品国产91综合久久蜜臀| 国产自产视频一区二区三区| 国产精品的网站| 欧美美女bb生活片| 国产成人午夜视频| 亚洲午夜三级在线| 久久久久亚洲蜜桃| 99久久99久久精品免费看蜜桃 | 久久99精品国产麻豆婷婷洗澡| 国产婷婷精品av在线| 99视频热这里只有精品免费| 亚洲成人精品影院| 欧美电影免费观看完整版| 成人免费高清在线| 午夜日韩在线观看| 欧美国产综合一区二区| 欧美日韩一区高清| 国产成人超碰人人澡人人澡| 亚洲一区二三区| 久久久欧美精品sm网站| 欧美日韩不卡一区二区| 成人性生交大片免费看中文网站| 天天综合天天综合色| 国产人成亚洲第一网站在线播放| 欧美日韩色综合| 高清久久久久久| 免费欧美日韩国产三级电影| 亚洲欧洲综合另类| 久久青草欧美一区二区三区| 欧美在线短视频| 国产精品99久久久久久有的能看| 日韩和欧美一区二区| 亚洲免费资源在线播放| 久久久久亚洲综合| 欧美一区二区三区视频|