一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - .net的socket異步通訊示例分享

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

2019-12-02 13:28ASP.NET技術網 ASP.NET教程

這篇文章主要介紹了.net的socket異步通訊示例,操作在下面,需要的朋友可以參考下

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲国产精品一区二区三区久久 | 国产欧美日韩在线不卡第一页 | 久久99视热频国只有精品 | 男男双性生子产乳高辣h | 操比视频| 女bbwxxxx非洲黑人 | 久久综合香蕉久久久久久久 | 精品无码国产AV一区二区三区 | 精品无人乱码一区二区三区 | 四虎影视永久免费视频观看 | 亚洲国产在线播放在线 | 亚洲精品97福利在线 | 天天做天天玩天天爽天天 | 国产精品视频免费看 | 国产成人综合网亚洲欧美在线 | 精品99在线观看 | 色8| 男人天堂视频网 | 果冻传媒第一二三专区 | 欧美色在线 | 日本中文字幕永久在线 | 国产成人h综合亚洲欧美在线 | 校花在公车上被内射好舒 | 91国内精品久久久久影院优播 | 女同videos双性人 | 男人的天堂视频在线 | 国产成人理在线观看视频 | 久久精品一区二区三区资源网 | 美女在线看永久免费网址 | 成人性色生活片免费网 | 超级碰在线视频 | 国产成人精品免费午夜 | 久久亚洲成a人片 | 青青在线视频免费 | 亚洲精品在看在线观看 | 国产小视频网站 | 久久国产视频网 | 日韩欧美一区二区三区视频 | 国产码一区二区三区 | 国产特黄a级在线视频 | 国产一级特黄在线播放 |