• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    .net的socket異步通訊示例分享

    來源:懂視網 責編:小采 時間:2020-11-27 22:39:06
    文檔

    .net的socket異步通訊示例分享

    .net的socket異步通訊示例分享:1、首先添加兩個windows窗體項目,一個作為服務端server,一個作為客戶端Client 2、然后添加服務端代碼,添加命名空間,界面上添加TextBox控件 代碼如下:using System.Net;using System.Net.Sockets; 3、FormLoad方法添加代碼 代碼如
    推薦度:
    導讀.net的socket異步通訊示例分享:1、首先添加兩個windows窗體項目,一個作為服務端server,一個作為客戶端Client 2、然后添加服務端代碼,添加命名空間,界面上添加TextBox控件 代碼如下:using System.Net;using System.Net.Sockets; 3、FormLoad方法添加代碼 代碼如

    1、首先添加兩個windows窗體項目,一個作為服務端server,一個作為客戶端Client

    2、然后添加服務端代碼,添加命名空間,界面上添加TextBox控件

    代碼如下:
    using System.Net;
    using System.Net.Sockets;

    3、FormLoad方法添加代碼

    代碼如下:
    private void Form1_Load(object sender, EventArgs e)
            {
                IPEndPoint epServer = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 7878);//IP地址和端口號
                Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//定義socket
                socket.Bind(epServer);//綁定
                socket.Listen(10);//監聽
                socket.BeginAccept(new AsyncCallback(RecVing), socket);//異步接收,回調方法為RecVing
            }

    4、添加回調方法代碼

    代碼如下:
    private void RecVing(IAsyncResult rec_socket)
            {
                string cmdstr = "";
                Socket sc = (Socket)rec_socket.AsyncState;
                Socket socket = sc.EndAccept(rec_socket);
                byte[] bytes = new byte[1024];
                int i = socket.Receive(bytes);
                cmdstr = Encoding.UTF8.GetString(bytes, 0, i);
                showstrs(cmdstr);
                sc.BeginAccept(new AsyncCallback(RecVing), sc);
            }

    5、添加showstrs方法,

    定義委托private delegate void shixudong_invoke(string invokefun);

    代碼如下:
    private void showstrs(string recv_strs)
            {
                if (recv_strs.Length != 0)
                {
                    if (this.InvokeRequired)
                    {
                        shixudong_invoke invoke = new shixudong_invoke(showstrs);
                        this.Invoke(invoke, (object)recv_strs);
                    }
                    else
                    {
                        textBox1.Text = recv_strs;

                    }
                }

    6、到此為止,服務端已經添加完畢

    7,客戶端代碼,首先跟服務端一樣,添加命名空間,在界面上添加button事件

    代碼如下:
    private void button1_Click(object sender, EventArgs e)
            {
                IPEndPoint IPEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 7878);//IP,端口號
                Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                socket.BeginConnect(IPEndPoint, new AsyncCallback(Sending), socket);//回調方法Sending
            }

    8、添加回調方法,代碼如下

    代碼如下:
    private void Sending(IAsyncResult rec_socket)
            {
                Socket socket = (Socket)rec_socket.AsyncState;
                try
                {
                    if (socket.Connected)
                    {
                        byte[] msgBuff = Encoding.UTF8.GetBytes(textBox1.Text);
                        socket.Send(msgBuff);
                        //socket.Accept();
                    }
                    else
                    {
                        Console.WriteLine("Error!", "Error!");
                    }
                }
                catch
                {
                    Console.WriteLine("Error!", "Error!");
                }

    9、到此為止,客戶端代碼已經完成,調試的時候先啟動服務端,然后啟動客戶端

    10、運行截圖如下,點擊按鈕前,在文本框中輸入shixudong

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    .net的socket異步通訊示例分享

    .net的socket異步通訊示例分享:1、首先添加兩個windows窗體項目,一個作為服務端server,一個作為客戶端Client 2、然后添加服務端代碼,添加命名空間,界面上添加TextBox控件 代碼如下:using System.Net;using System.Net.Sockets; 3、FormLoad方法添加代碼 代碼如
    推薦度:
    標簽: 通訊 例子 通信
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久久精品人妻无码专区不卡| 亚洲欧洲国产精品你懂的| 久久国产精品无码HDAV| 国产精品二区观看| 国产成人精品2021| 亚洲一区二区三区国产精品| 精品国产午夜福利在线观看| 91精品国产综合久久四虎久久无码一级 | 国产人成精品午夜在线观看| 伊人久久精品无码av一区| 精品露脸国产偷人在视频| 97国产视频精品| 国产精品视频a播放| 久久国产亚洲精品无码| 影院无码人妻精品一区二区| 久久久精品视频免费观看| 国产精品国产欧美综合一区| 66精品综合久久久久久久| 精品乱人伦一区二区三区| A级精品国产片在线观看| 久热这里只有精品12| 亚洲精品宾馆在线精品酒店| 欧美成人精品高清视频在线观看| 国产亚洲精品不卡在线| 国产2021久久精品| 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 | 欧美国产亚洲精品高清不卡| 99精品在线观看| 99re这里只有精品6| 午夜精品久久久久久99热| 国产精品毛片VA一区二区三区| sihu国产精品永久免费| 精品国产第一国产综合精品| 久久久久99精品成人片欧美| 欧美精品久久久久久久自慰| 午夜精品久久久久久99热| 色偷偷88888欧美精品久久久| 亚洲精品白浆高清久久久久久| 午夜精品久久久久久毛片| 久久亚洲精精品中文字幕| 色欲精品国产一区二区三区AV|