国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

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

2019-11-02 15:03:35
字體:
來源:轉載
供稿:網友

 這篇文章主要介紹了.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)
樂樂影院[www.aikan.tv/special/leleyingyuan/]
, 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 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 交城县| 扬中市| 马尔康县| 米易县| 徐水县| 西乌珠穆沁旗| 巴塘县| 武安市| 大新县| 平凉市| 胶州市| 荔波县| 犍为县| 静宁县| 台前县| 万载县| 扎鲁特旗| 漯河市| 武定县| 龙山县| 宿州市| 鸡泽县| 孝感市| 邯郸县| 苍南县| 河源市| 新竹市| 永修县| 含山县| 灯塔市| 酒泉市| 吴旗县| 岑溪市| 南充市| 浦江县| 巫山县| 家居| 铜梁县| 车致| 星座| 和静县|