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

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

      中文在线资源天堂| 久久国产乱子伦精品| 亚洲午夜久久久久久久久红桃| 在线观看亚洲色图| 亚洲精品电影院| www.色就是色.com| 国产免费一级视频| 欧美激情一区二区视频 | 亚洲综合视频在线播放| caoporn超碰97| 国产一二三四在线视频| 免费看av毛片| 亚洲av人人澡人人爽人人夜夜| 亚洲欧美另类视频| 国产视频123区| 欧美一级免费片| 伊人中文字幕在线观看| 99热这里精品| 精品无码久久久久| 五月婷中文字幕| caoporn国产| 欧美黄色免费观看| 亚洲精品久久久久久久久久| 国产极品在线播放| 日本黄大片一区二区三区| 中文字幕在线天堂| 国产又大又黄又粗的视频| 日日骚av一区二区| 天天操天天操天天| 亚洲国产午夜精品| 国产伦精品一区二区免费| 日韩a一级欧美一级| 夜夜嗨aⅴ一区二区三区| 久久高清免费视频| 亚洲精品乱码久久久久久蜜桃欧美| 国产黄色片在线| 婷婷色在线观看| 国产精品探花一区二区在线观看| 日韩 中文字幕| www.久久成人| 日韩在线观看视频一区二区三区| 99精品人妻国产毛片| 欧美一级小视频| 91中文字幕永久在线| 欧美三级小视频| 69视频免费看| 手机版av在线| 国产亚洲欧美精品久久久久久| 午夜免费福利在线| 国产又黄又猛又粗又爽的视频| 销魂美女一区二区| 国产有码在线观看| 亚洲精品国产一区二区三区| 免费a在线观看播放| www.欧美国产| 亚洲av综合色区无码一二三区 | 97国产精品久久久| 三上悠亚在线一区二区| 国产精品999.| 中文字幕在线播出| 人妻aⅴ无码一区二区三区| 高清乱码毛片入口| 中国一级片在线观看| 欧美精品久久久久久久久25p| 不卡av免费在线| 中文字幕一区二区三区人妻电影| 免费看一级一片| 丁香社区五月天| 中文字幕在线观看成人| 欧美激情第一区| 国模无码一区二区三区| 97人人爽人人爽人人爽| 污污视频网站免费观看 | 久久精品一区二区三| 99re只有精品| 在线播放黄色av| 日韩欧美一级视频| 久久av高潮av无码av喷吹| 成人亚洲精品777777大片| 中文字幕成人动漫| 无码人妻丰满熟妇奶水区码| 蜜桃福利午夜精品一区| 国产一级片一区二区| 国产7777777| 91视频免费入口| 中文字幕在线一| 性高潮久久久久久| 日韩一区二区三区久久| 免费的黄色av| www.涩涩涩| 在线视频免费观看一区| 午夜免费看毛片| 少妇黄色一级片| 日本欧美www| 欧美偷拍第一页| 欧美人与性动交α欧美精品| 久久国产视频一区| 好吊色一区二区三区| 国产免费一区二区三区四区五区| 国产chinese中国hdxxxx| av直播在线观看| 凹凸精品一区二区三区| a级大片免费看| www.youjizz.com亚洲| www.久久av| 国产传媒免费观看| 国产精品久久久视频| 高清毛片aaaaaaaaa片| 国产ts在线观看| 国产精品一区二区6| 国产偷人妻精品一区| 黄色一级片免费播放| 精品国产av鲁一鲁一区| 久久国产美女视频| 欧美激情aaa| 四虎精品永久在线| 中文字幕第二区| 亚洲三级视频网站| а中文在线天堂| 国产一级aa大片毛片| 久久久久久婷婷| 日韩久久中文字幕| 亚洲av成人精品一区二区三区| 中文字幕一区二区三区人妻在线视频 | 亚洲精品综合久久| 99久久夜色精品国产亚洲| 国产成人美女视频| 国产专区第一页| 欧美成人国产精品高潮| 丝袜美腿小色网| 中文字幕三级电影| 高清国产mv在线观看| 精品人妻在线视频| 少妇无码一区二区三区| 天天操天天干天天插| 一区二区视频观看| v天堂中文在线| 久久久久久久久久久久91| 人妻激情偷乱视频一区二区三区 | 这里只有精品在线观看视频| 538精品视频| 国产综合无码一区二区色蜜蜜| 欧美日韩大片在线观看| 宅男噜噜噜66国产免费观看| www午夜视频| 蜜臀av中文字幕| 下面一进一出好爽视频| 91视频免费网址| 久久久国产精品成人免费| 香蕉视频色在线观看| av中文字幕网址| 久久久精品国产sm调教网站| 特黄特黄一级片| www.蜜桃av.com| 欧美男人亚洲天堂| 亚洲综合欧美综合| 久久久久久九九九九九| 在线观看av免费观看| 国产人妻精品一区二区三区| 日韩不卡的av| 99精品国产99久久久久久97| 免费在线视频观看| 中文字幕在线播放视频| 久久99久久久| 亚洲毛片欧洲毛片国产一品色| 国产探花在线播放| 永久免费的av网站| 国产一级一片免费播放| 影音先锋黄色资源| 黄色一级片免费的| 这里只有精品9| 精品久久久久成人码免费动漫| 一区二区视频免费观看| 精品久久免费视频| 综合久久中文字幕| 久久亚洲成人av| 91肉色超薄丝袜脚交一区二区| 国产精品人人爽人人爽| 香蕉视频成人在线| 激情文学亚洲色图| 一级黄色片网站| 色姑娘综合天天| 国产午夜视频在线播放| 中文字幕一区在线播放| 免费不卡av网站| 国产精品久久综合青草亚洲AV| 午夜精品久久久久久久96蜜桃| 精品不卡一区二区| 亚洲午夜精品久久久久久高潮| 欧美三级黄色大片| 国产精品综合在线| 亚洲精品www.| 日韩精品在线观看免费| 国产精品一级视频| 亚洲综合一二三| 午夜激情福利网| 欧美成人福利在线观看| 国产免费av一区二区| 91在线播放观看| 一区二区不卡视频在线观看|