不卡视频在线观看_三级网站视频在线观看_91精品网站_国产综合一区二区

完善主體資料,免費(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
不卡视频在线观看_三级网站视频在线观看_91精品网站_国产综合一区二区

      9000px;">

          九九视频免费看| 亚洲欧美自偷自拍| 亚洲福利精品视频| 在线免费观看av片| 中文字幕一区二区三区四区在线视频 | 亚洲成人中文字幕在线| 亚洲av成人精品一区二区三区在线播放 | 五月天婷婷社区| 中文字幕+乱码+中文乱码91| 中文字幕一区二区免费| 亚洲综合免费视频| 国产ts在线观看| 国产亚洲精品女人久久久久久| 九九这里只有精品视频| 欧美一区二区三区四| 熟妇人妻久久中文字幕| 中文字幕第三区| 91看片在线播放| 国产麻豆精品一区| 久久性爱视频网站| 深爱激情五月婷婷| 中文字幕乱码一区| av首页在线观看| 国产一级片视频| 欧美激情第一区| 午夜影院免费体验区| 亚洲精品mv在线观看| wwwwxxxx国产| 精品人妻伦一二三区久| 日本视频在线观看免费| 伊人成人在线观看| 99热这里只有精品2| 国精产品一区二区三区| 欧美一级小视频| 在线观看精品国产| jizz中国少妇| 久久国产劲爆∧v内射| 日韩精品一区二区三区在线视频| 又大又长粗又爽又黄少妇视频| 一级黄色大片免费| 黄色小说在线观看视频| 日本激情综合网| 亚洲国产午夜精品| 国产三级日本三级在线播放| 欧美色视频一区二区三区在线观看| 亚洲 另类 春色 国产| 99热这里只有精品在线| 久久精品国产亚洲av麻豆色欲| 日韩在线观看视频一区二区| 亚洲精品自拍网| 国产无遮挡又黄又爽又色视频| 潘金莲一级淫片aaaaa| 中文字幕第15页| 国产黄色一级大片| 欧美精品一区二区蜜桃| 亚洲精品免费在线观看视频 | 三级a在线观看| 亚洲色婷婷一区二区三区| 国产精品视频123| 人妻少妇偷人精品久久久任期 | a片在线免费观看| 久久免费精品国产| 中国黄色片免费看| 国产美女免费网站| 熟妇人妻av无码一区二区三区| 4438国产精品一区二区| 九九精品久久久| 亚洲成a人片在线www| 国产成人三级一区二区在线观看一 | 精品少妇爆乳无码av无码专区| 无码人妻av免费一区二区三区 | 欧美一级特黄aaa| 亚洲一区中文字幕永久在线| 极品白嫩丰满美女无套| 一区二区三区黄| 国产性生活视频| 五月天视频在线观看| 丰满少妇高潮一区二区| 日本xxxx黄色| aaa一区二区| 日本黄色一区二区三区| av中文字幕免费| 人人妻人人玩人人澡人人爽 | 国产在线观看免费视频软件| 无码人妻精品一区二区50| 成人h动漫精品一区二区下载| 日本美女视频一区| www.av欧美| 日韩欧美亚洲国产| 国产高清中文字幕| 性高潮久久久久久| 国产主播在线观看| 中文字幕日韩免费| 久久久国产高清| 一二三区中文字幕| 人妻精品久久久久中文| japanese在线观看| 思思久久精品视频| 国产精品久久久久久人| 小泽玛利亚一区二区三区视频| 国产毛片一区二区三区va在线| 亚洲av无码一区二区三区dv| 黄色aaa毛片| 亚洲熟妇无码久久精品| 欧美成人福利在线观看| 99国产精品久久久久久久成人| 日本在线观看中文字幕| 国产精品国产三级国产专业不| 五月天婷婷丁香| 精品无码国产一区二区三区51安| 亚洲欧美日韩色| 日本视频在线免费| 国产伦精品一区二区三区妓女下载 | 在线中文字幕网站| 开心激情五月网| www.99视频| 亚州国产精品视频| 久久久久久久久免费看无码| 91资源在线视频| 午夜久久久精品| 久久精品国产亚洲av无码娇色| 91看片在线免费观看| 无码人妻精品一区二区中文| 精品91久久久| www三级免费| 中文文字幕一区二区三三| 免费在线观看一级片| 国产哺乳奶水91在线播放| 中文字幕美女视频| 日本少妇久久久| 韩国av永久免费| 97人人爽人人爽人人爽| 五月天婷婷综合网| 毛片久久久久久| 国产精品999在线观看| 亚洲精品国产91| 日韩一级片免费看| 九九热在线视频播放| wwwxxxx国产| 中文字幕视频三区| 日韩无码精品一区二区| 精品人伦一区二区三电影| www.色婷婷.com| 亚洲国产精品成人综合久久久| 日本视频www| 久久精品无码一区| 国产福利视频导航| 亚洲天堂av一区二区| 五月天av在线播放| 强乱中文字幕av一区乱码| 国产主播第一页| 福利在线一区二区三区| 亚洲欧美另类视频| 亚洲av无码一区二区乱子伦| 欧美激情视频二区| 精品久久久久久久久久久久久久久久久久 | 久久人人爽人人片| 国产日韩在线观看一区| 99久久精品国产一区色| 中文字幕一区三区久久女搜查官| 三级性生活视频| 欧美三级午夜理伦三级富婆| 精品二区在线观看| 国产精品人人爽人人爽| va视频在线观看| 亚洲一二三区av| 中文字幕在线综合| 五月天中文字幕在线| 日韩精品视频免费看| 欧美第一页在线观看| 精品区在线观看| 国产一级片中文字幕| 国产黄色片在线免费观看| 999免费视频| 7799精品视频天天看| 亚洲精品国产精品国| 中文字幕成人动漫| 影音先锋人妻啪啪av资源网站| 无码人妻aⅴ一区二区三区69岛| 人人妻人人玩人人澡人人爽| 免费观看黄色av| 六月婷婷综合网| 精品人妻一区二区乱码| 国产婷婷在线视频| 国产免费久久久| 国产精品怡红院| 国产高清在线免费| 岛国精品一区二区三区| 91在线精品入口| av最新在线观看| www.cao超碰| av小说在线观看| 911av视频| 99久久综合网| 成 人片 黄 色 大 片| www.日韩一区| 东京热无码av男人的天堂| 国产av人人夜夜澡人人爽| 粉嫩av一区二区夜夜嗨| 国产激情久久久久久熟女老人av|