最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2014年03月20日 15:15:56   作者:  
這篇文章主要介紹了.net的socket異步通訊示例,操作在下面,需要的朋友可以參考下

1、首先添加兩個(gè)windows窗體項(xiàng)目,一個(gè)作為服務(wù)端server,一個(gè)作為客戶端Client

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

復(fù)制代碼 代碼如下:

using System.Net;
using System.Net.Sockets;

3、FormLoad方法添加代碼

復(fù)制代碼 代碼如下:

private void Form1_Load(object sender, EventArgs e)
        {
            IPEndPoint epServer = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 7878);//IP地址和端口號(hào)
            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)方法代碼

復(fù)制代碼 代碼如下:

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);

復(fù)制代碼 代碼如下:

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

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

復(fù)制代碼 代碼如下:

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

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

復(fù)制代碼 代碼如下:

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)試的時(shí)候先啟動(dòng)服務(wù)端,然后啟動(dòng)客戶端

10、運(yùn)行截圖如下,點(diǎn)擊按鈕前,在文本框中輸入shixudong

相關(guān)文章

  • LINQ to XML的編程基礎(chǔ)

    LINQ to XML的編程基礎(chǔ)

    本文介紹了LINQ to XML的編程基礎(chǔ),即System.Xml.Linq命名空間中的多個(gè)LINQ to XML類,這些類都是LINQ to XML的支持類,它們使得處理xml比使用其他的xml工具容易得多。在本文中,著重介紹的是XElement、XAttribute和XDocument。
    2010-02-02
  • .net數(shù)據(jù)庫操作框架SqlSugar的簡(jiǎn)單入門

    .net數(shù)據(jù)庫操作框架SqlSugar的簡(jiǎn)單入門

    這篇文章主要介紹了.net數(shù)據(jù)庫操作框架SqlSugar的簡(jiǎn)單入門,幫助大家更好的理解和學(xué)習(xí)使用.net技術(shù),感興趣的朋友可以了解下
    2021-04-04
  • 加密web.config的方法分享

    加密web.config的方法分享

    加密web.config的方法分享,需要的朋友可以參考一下
    2013-03-03
  • .net6?在中標(biāo)麒麟下的安裝和部署過程

    .net6?在中標(biāo)麒麟下的安裝和部署過程

    這篇文章主要介紹了.net6?在中標(biāo)麒麟下的安裝部署,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • ASP.NET?MVC使用JCrop上傳并裁剪圖片

    ASP.NET?MVC使用JCrop上傳并裁剪圖片

    這篇文章介紹了ASP.NET?MVC使用JCrop上傳并裁剪圖片的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • 利用asp.net實(shí)現(xiàn)生成不重復(fù)訂單號(hào)

    利用asp.net實(shí)現(xiàn)生成不重復(fù)訂單號(hào)

    訂單號(hào)在購物過程中起到了很好的識(shí)別作用,更方便的有利于工作人員識(shí)別商品,本文介紹利用asp.net實(shí)現(xiàn)生成訂單號(hào)
    2012-12-12
  • C#元組類型ValueTuple用法詳解

    C#元組類型ValueTuple用法詳解

    本文詳細(xì)講解了C#元組類型ValueTuple的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • .NET根據(jù)文件的哈希值篩選重復(fù)文件的實(shí)現(xiàn)思路

    .NET根據(jù)文件的哈希值篩選重復(fù)文件的實(shí)現(xiàn)思路

    文章介紹了文件哈希值的概念,包括哈希算法、唯一性、固定長(zhǎng)度、不可逆性以及其在文件驗(yàn)證、數(shù)據(jù)完整性檢查、文件去重、密碼存儲(chǔ)等領(lǐng)域的應(yīng)用,接著,通過一個(gè)示例代碼說明了如何通過文件大小分組并比對(duì)哈希值來篩選出重復(fù)文件,感興趣的朋友一起看看吧
    2025-03-03
  • asp.net FCKeditor自定義非空驗(yàn)證

    asp.net FCKeditor自定義非空驗(yàn)證

    有時(shí)在使用FCK的,需要對(duì)它做非空的驗(yàn)證。以前一直是使用RequiredFieldValidator控件來完成的。但是會(huì)有一個(gè)小小的bug,在提交的時(shí)候第一次不能通過驗(yàn)證。
    2009-12-12
  • sealed在C#中的作用說明

    sealed在C#中的作用說明

    sealed的中文意思是密封,故名思義,就是由它修飾的類或方法將不能被繼承或是重寫。
    2010-10-10

最新評(píng)論

石嘴山市| 武义县| 黎平县| 富裕县| 仙游县| 汉中市| 太和县| 鹰潭市| 青浦区| 汨罗市| 沂南县| 二连浩特市| 定安县| 江阴市| 炉霍县| 勃利县| 荔浦县| 黔南| 新田县| 巴林左旗| 黑水县| 武平县| 即墨市| 方正县| 马公市| 通城县| 南召县| 定结县| 庄河市| 永胜县| 乃东县| 中阳县| 潜江市| 博客| 神农架林区| 公安县| 精河县| 伽师县| 铜川市| 平南县| 府谷县|