亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C# Socket系列一 簡單的創建socket的監聽

2019-11-17 02:31:18
字體:
來源:轉載
供稿:網友

C# Socket系列一 簡單的創建socket的監聽

socket的應用場景,在快速,穩定,保持長連接的數據傳輸代碼。Http也是socket封裝出來的,基于一次請求一次回復,然后斷開的socket連接封裝。

比如我們常見的游戲服務器,目前的很火的物聯網服務器,都需要開啟socket服務器去監聽實時傳輸的數據。

那么我們如何實現socket的監聽呢。說到這里,我們需要知道,socket的監聽分為tcp和udp兩種形式,但是tcp其實是udp封裝而來的,可看做可靠的udp傳輸,基于udp的定向傳輸,收到消息回復發送方收到消息。等驗證,來實現tcp的數據傳輸,所以一般我們tcp的傳輸相對udp稍微慢一點。

我們先將一下socket 的tcp狀態創建一個TCPListener類

  1  /// <summary>  2     /// 建立TCP通信監聽服務  3     /// </summary>  4     internal class TCPListener  5     {  6         PRivate ipEndPoint _IP;  7         private Socket _Listeners;  8         private volatile bool IsInit = false;  9         List<TSocketBase> sockets = new List<TSocketBase>(); 10  11         /// <summary> 12         /// 初始化服務器 13         /// </summary> 14         public TCPListener(string ip = "0.0.0.0", int port = 9527) 15         { 16             IsInit = true; 17             IPEndPoint localEP = new IPEndPoint(IPAddress.Parse(ip), port); 18             this._IP = localEP; 19             try 20             { 21                 Console.WriteLine(string.Format("Listen Tcp -> {0}:{1} ", ip, port)); 22                 this._Listeners = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 23                 this._Listeners.Bind(this._IP); 24                 this._Listeners.Listen(5000); 25                 SocketAsyncEventArgs sea = new SocketAsyncEventArgs(); 26                 sea.Completed += new EventHandler<SocketAsyncEventArgs>(this.AcceptAsync_Async); 27                 this.AcceptAsync(sea); 28             } 29             catch (Exception ex) 30             { 31                 Console.WriteLine(ex); 32                 this.Dispose(); 33             } 34         } 35  36         private void AcceptAsync(SocketAsyncEventArgs sae) 37         { 38             if (IsInit) 39             { 40                 if (!this._Listeners.AcceptAsync(sae)) 41                 { 42                     AcceptAsync_Async(this, sae); 43                 } 44             } 45             else 46             { 47                 if (sae != null) 48                 { 49                     sae.Dispose(); 50                 } 51             } 52         } 53  54         private void AcceptAsync_Async(object sender, SocketAsyncEventArgs sae) 55         { 56             if (sae.SocketError == SocketError.Success) 57             { 58                 var socket = new TSocketClient(sae.AcceptSocket); 59                 sockets.Add(socket); 60                 Console.WriteLine("Remote Socket LocalEndPoint:" + sae.AcceptSocket.LocalEndPoint + " RemoteEndPoint:" + sae.AcceptSocket.RemoteEndPoint.ToString()); 61             } 62             sae.AcceptSocket = null; 63             if (IsInit) 64             { 65                 this._Listeners.AcceptAsync(sae); 66             } 67             else { sae.Dispose(); } 68         } 69  70         /// <summary> 71         /// 釋放資源 72         /// </summary> 73         public void Dispose() 74         { 75             if (IsInit) 76             { 77                 IsInit = false; 78                 this.Dispose(true); 79                 GC.SuppressFinalize(this); 80             } 81         } 82         /// <summary> 83         /// 釋放所占用的資源 84         /// </summary> 85         /// <param name="flag1"></param> 86         protected virtual void Dispose([MarshalAs(UnmanagedType.U1)] bool flag1) 87         { 88             if (flag1) 89             { 90                 if (_Listeners != null) 91                 { 92                     try 93                     { 94                         Console.WriteLine(string.Format("Stop Listener Tcp -> {0}:{1} ", this.IP.Address.ToString(), this.IP.Port)); 95                         _Listeners.Close(); 96                         _Listeners.Dispose(); 97                     } 98                     catch { } 99                 }100             }101         }102 103         /// <summary>104         /// 獲取綁定終結點105         /// </summary>106         public IPEndPoint IP { get { return this._IP; } }107     }

主要兩點我們socket的初始化代碼new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);初始化的類型是基于tcp。

還有就是我們綁定ip地址,過去很多人socket的bind地址習慣寫成127.0.0.1(測試環境)或者讀取網卡信息,讀取ip地址,這樣麻煩,代碼要寫很多,切不符合多網卡多線路實際環境。我們用0.0.0.0是表示開啟ipv4的所有線路監聽,包括你的多路網卡,以及127.0.0.1

1     class Program2     {3         static void Main(string[] args)4         {5             TCPListener tcp = new TCPListener();6             Console.ReadLine();7         }8     }

我們運行看一下效果

接下來我們使用telnet測試一下

開啟telnet

然后打開cmd

輸入 telnet 127.0.0.1 9527

我們看到收到了一個連接


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人免费视频xnxx.com| 日本中文字幕不卡免费| 久久视频在线观看免费| 日韩精品一区二区视频| 欧美精品www| 亚洲国产精品国自产拍av秋霞| 久久av资源网站| 日韩av免费看网站| 久久久久北条麻妃免费看| 久久视频在线免费观看| 亚洲国语精品自产拍在线观看| 欧美日韩国产色| 国产欧美在线播放| 久久久久久尹人网香蕉| 永久免费看mv网站入口亚洲| 日韩综合中文字幕| 国产日韩中文在线| 久久在线视频在线| 狠狠躁夜夜躁久久躁别揉| 欧美日韩亚洲系列| 性亚洲最疯狂xxxx高清| 欧美亚洲第一页| 欧美野外猛男的大粗鳮| 欧美午夜片欧美片在线观看| 国内精品久久久久久影视8| 亚洲国产欧美在线成人app| 亚洲区免费影片| 亚洲精品综合久久中文字幕| 国产精品久久久久久久久久免费| 欧美成aaa人片免费看| 精品国产欧美一区二区三区成人| 欧美性极品少妇精品网站| 欧美乱大交xxxxx另类电影| 国产日韩精品在线播放| 福利视频导航一区| 亚洲精品久久久久中文字幕二区| 亚洲一区二区中文字幕| 久久久久久综合网天天| 9.1国产丝袜在线观看| 全球成人中文在线| 欧美俄罗斯性视频| 中文字幕在线精品| 欧美激情亚洲另类| 亚洲国语精品自产拍在线观看| 国产亚洲欧美视频| 亚洲一区亚洲二区亚洲三区| 亚洲最大的网站| 日本中文字幕不卡免费| 97人洗澡人人免费公开视频碰碰碰| 欧美日韩第一页| 日韩欧美成人免费视频| 欧美视频在线观看免费网址| 美女少妇精品视频| 国产精品久久久久久久久久久久| 精品中文字幕在线| 国产精品福利在线| 日韩一二三在线视频播| 亚洲香蕉伊综合在人在线视看| 国产一区玩具在线观看| 亚洲精品xxx| 国产精品亚洲片夜色在线| 色哟哟入口国产精品| 久久久久久久香蕉网| 国产成人亚洲综合91| 国内精品久久久久影院 日本资源| 国产成+人+综合+亚洲欧洲| 国产成人精品一区二区在线| 日韩中文字幕精品视频| 久热99视频在线观看| 欧美日韩福利在线观看| 日韩av在线一区二区| 日韩av在线播放资源| 4p变态网欧美系列| 亚洲国产精品久久久久秋霞蜜臀| 欧美激情国产精品| xxxxxxxxx欧美| 91精品视频在线看| 精品国产91久久久久久老师| 亚洲精品成a人在线观看| 成人午夜高潮视频| 亚洲天堂男人天堂| 国产精品444| 亚洲一区二区久久久久久| 亚洲人成网7777777国产| 久久精品电影一区二区| 国产精品日日做人人爱| 久久亚洲精品中文字幕冲田杏梨| 国色天香2019中文字幕在线观看| 亚洲综合在线小说| 国产精品老女人精品视频| 欧美一级视频免费在线观看| 这里只有精品在线播放| 欧美肥臀大乳一区二区免费视频| 中文字幕综合一区| 国产91热爆ts人妖在线| 久久精品国产亚洲一区二区| 国产精品久久77777| 亚洲精品成人久久| 一本大道香蕉久在线播放29| 97人人模人人爽人人喊中文字| 亚洲一区二区中文| 97色在线观看| 欧美视频在线观看免费| 欧美精品video| 中文字幕欧美专区| 久久久国产精品亚洲一区| 黑人巨大精品欧美一区二区三区| 国产精品成av人在线视午夜片| 欧美黑人xxxx| 国产综合福利在线| 国产色综合天天综合网| 欧美精品999| 久久这里有精品| 日韩av综合网站| 青青精品视频播放| 久久好看免费视频| 揄拍成人国产精品视频| 精品亚洲夜色av98在线观看| 日韩电影中文字幕| 久99九色视频在线观看| 色视频www在线播放国产成人| 91国内精品久久| 日韩欧美国产一区二区| 九九热最新视频//这里只有精品| 国产精品夜间视频香蕉| 久久精品久久久久电影| 精品国产美女在线| 国产精品久久久久久久app| 亚洲欧洲一区二区三区在线观看| 成人国产精品色哟哟| 91久久综合亚洲鲁鲁五月天| 国产+人+亚洲| 在线免费观看羞羞视频一区二区| 日韩在线观看免费全集电视剧网站| 高清亚洲成在人网站天堂| 精品久久久久久久久中文字幕| 亚洲欧美日韩综合| 奇米成人av国产一区二区三区| 大伊人狠狠躁夜夜躁av一区| 国产在线视频一区| 2019精品视频| 91久久精品美女高潮| 国产不卡av在线免费观看| 亚洲www永久成人夜色| 亚洲人精选亚洲人成在线| 亚洲自拍偷拍福利| 亚洲精品中文字幕女同| 国产精品色婷婷视频| 亚洲国产成人爱av在线播放| 精品亚洲va在线va天堂资源站| 久久久久久久影院| 亚洲伦理中文字幕| 欧美性xxxx在线播放| 国产乱人伦真实精品视频| 91青草视频久久| 国产亚洲精品久久久| 少妇久久久久久| 成人精品视频在线| 91伊人影院在线播放| 精品国产精品三级精品av网址| 国产丝袜一区视频在线观看| 伊人男人综合视频网| 久久亚洲综合国产精品99麻豆精品福利| 日韩电影免费观看中文字幕|