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

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

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

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

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

2019-12-02 13:28ASP.NET技術(shù)網(wǎng) 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);//監(jiān)聽
            socket.BeginAccept(new AsyncCallback(RecVing), socket);//異步接收,回調(diào)方法為RecVing
        }

 

4、添加回調(diào)方法代碼

 

復制代碼代碼如下:

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、到此為止,服務端已經(jīng)添加完畢

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);//回調(diào)方法Sending
        }

 

8、添加回調(diào)方法,代碼如下

 

復制代碼代碼如下:

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、到此為止,客戶端代碼已經(jīng)完成,調(diào)試的時候先啟動服務端,然后啟動客戶端

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产成人久久精品区一区二区 | 午夜一区二区福利视频在线 | 香蕉eeww99国产精品 | 日本护士handjob | 国产一区在线免费观看 | 视频免费视频观看网站 | 精品第一国产综合精品蜜芽 | 日韩无砖专区2020在线 | 男人和女人上床 | 欧美日韩国产超高清免费看片 | 天天色影视综合网 | yy6080午夜国产免费福利 | 亚洲男人天堂网址 | 久9青青cao精品视频在线 | 99看视频 | 欧美一区二区三区高清不卡tv | 久久久精品免费视频 | 亚洲高清成人 | 亚洲免费在线看 | 大象传媒短视频网站 | 美女厕所尿尿擦逼 | 精品一区二区三区五区六区七区 | 日日骑夜夜骑 | 免费岛国片 | 欧洲老太玩小伙 | 亚州精品永久观看视频 | 日本护士xxxx视频免费 | 欧美精品国产一区二区三区 | 性一交一无一伦一精一品 | 日本sss在线高清观看 | 99久久99久久久精品齐齐鬼色 | 小妇人电影免费完整观看2021 | 大香人蕉免费视频75 | 201天天爱天天做 | 国产精品1| 成人福利在线播放 | 91精品国产色综合久久不卡蜜 | 好大水好多好爽好硬好深视频 | 日本人成在线视频免费播放 | 日本红色高清免费观看 | 3d欧美人禽交 |