999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Socket在C#程序中的應用

2014-03-20 07:18:08許銳炮
科技視界 2014年21期
關鍵詞:網絡通信運行機制方法

許銳炮

(民航汕頭空管站 技術保障部,廣東 揭東515558)

0 引言

當前網絡通信日益應用廣泛,以民航汕頭空管站為例,單業務網就超過5 個,而信息化集中程度越來越多的同時,分布式系統之間的信息傳輸也成為一個研究課題。 而對于傳統的TCP/IP 協議來說,TCP能提供一種可靠的、有連接的數據流服務,IP 協議則能通過識別IP 地址實現網絡個體的互相通信, 相關文獻也將兩者稱為底層網絡通信。而對比之下,已經成熟應用的Socket 中間件便可以以應用程序的方式存在于各大網絡分布式系統,應用日趨廣泛。因此,探討Socket 的運行機制及應用對相關網絡編程和技術維護有一定意義。本文將從實際出發,介紹其在C# 程序編寫中的相關技術及特點。

1 Socket 運行機制

Socket 是應用層與TCP/IP 協議族通信的中間軟件抽象層,它是一組接口。 在設計模式中,Socket 作為一個門面模式把復雜的TCP/IP 協議族隱藏在Socket 接口后面,對開發人員來說,一組簡單的接口就是全部,讓Socket 去組織數據,以符合指定的協議。 它主要由IP 地址和端口號組成。 在TCP/IP 網絡協議中, 基于服務器客戶端模式的通信上,建立Socket 連接至少需要一對套接字,其中一個運行于客戶端,稱為ClientSocket , 另一個運行于服務器端, 稱為ServerSocket 。 對于ServerSocket 來說主要用于服務器監聽, 服務器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態,實時監控網絡狀態,等待客戶端的連接請求。一旦有請求或者相關命令信息,立即響應。而對于ClientSocket 來說將主動向服務器端套接字發出連接請求。因此,客戶端的套接字必須首先描述它要連接的服務器的套接字,指出服務器端套接字的地址和端口號, 然后就向服務器端套接字提出連接請求。當服務器端套接字監聽到或者說接收到客戶端套接字的連接請求時,就響應客戶端套接字的請求,建立一個新的線程,把服務器端套接字的描述發給客戶端,一旦客戶端確認了此描述,雙方就正式建立連接。而服務器端套接字繼續處于監聽狀態,繼續接收其他客戶端套接字的連接請求。

2 Socket 在C# 編程中的機制

2.1 C# 中的Socket 類

C# Socket 類為網絡通信提供了一套豐富的方法和屬性。 Socket類允許開發人員使用ProtocolType 枚舉中所列出的任何一種協議執行異步和同步數據傳輸。 如果應用程序在執行期間只需要一個線程。對于面向連接的協議的TCP 協議通信, 服務器可以使用Listen 方法偵聽連接。 Accept 方法則處理任何傳入的連接請求,并返回可用于與遠程主機進行數據通信的Socket。 同時可以使用此返回的Socket 來調用Send 或Receive 方法。 調用Bind 方法后便可以要指定本地IP地址和端口號。連接偵聽主機,則可以調用Connect 方法。在數據通信上,主要用Send 或Receive 方法。

對 于TCP/IP 的 通 信 在C# 中 可 使 用 Socket、BeginConnect 和EndConnect 方法來連接偵聽主機。 通過使用BeginSend 和EndSend方法,或者使用BeginReceive 和EndReceive 方法,可以進行異步數據通信。 與此同時,使用BeginAccept 和EndAccept 處理傳入的連接請求。

而在實際應用中,C# 的Socket 經常需要與多線程配合以解決異步傳輸問題。C# 支持通過多線程并行地執行代碼,一個線程有它獨立的執行路徑,能夠與其它的線程同時地運行。一個C# 程序開始于一個單線程,這個單線程是被CLR 和操作系統(也稱為“主線程”)自動創建的,并具有多線程創建額外的線程。

2.2 實際應用

作為典型的C/S 模式結構設計,一般情況下包括服務器端軟件設計和客戶端軟件設計,因此服務器端軟件與客戶端軟件不可避免需要對其進行網絡通信編程。以客戶端軟件設計為例,Socket 在C# 中則可以通過以下實現:

private IPEndPoint ServerInfo;

private Socket ClientSocket;

private Byte[] MsgBuffer;//信息接收緩存

private Byte[] MsgSend; //信息發送存儲

ClientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

MsgBuffer = new Byte[65535];

MsgSend = new Byte[65535];

this.UserName.Text =Environment.MachineName;

ServerInfo = new IPEndPoint (IPAddress.Parse(this.ServerIP.Text),Convert.ToInt32(this.ServerPort.Text));

ClientSocket.Connect(ServerInfo);

ClientSocket.Send (Encoding.Unicode.GetBytes (" 用 戶: " + this.UserName.Text + " 進入系統! "));

ClientSocket.BeginReceive (MsgBuffer, 0, MsgBuffer.Length,SocketFlags.None, new AsyncCallback(ReceiveCallBack), null);

3 結束語

本文討論了Socket 的運行機制以及其在C# 編程中的設計以及相關技術功能,Socket 作為一種應用程序接口其在實際應用中將底層的相關通信協議等各種技術封裝在程序背后, 為開發人員提供了快速、高效的開發方式。 討論其運行機制,對開發和技術維護有實際意義。

[1]胡晶晶,魯漫紅.基于Java Socket 的聊天室系統設計與實現[J].微處理機,2010,5:66-70.

[2]周譚凱,馬玉祥.網絡通信編程架構研究[J].電子科技,2005(12).

[3]寇海洲,宗慧.利用Socket 實現被動方式實時提醒系統設計[J].淮陰工學院學報,2008(03).

猜你喜歡
網絡通信運行機制方法
海上軍用網絡通信的安全控制技術
網上公共服務平臺運行機制評析
基于網絡通信的智能照明系統設計
電子制作(2019年15期)2019-08-27 01:11:48
網絡通信中信息隱藏技術的應用
談計算機網絡通信常見問題及技術發展
電子制作(2017年17期)2017-12-18 06:41:06
減刑、假釋工作運行機制之重構
校企合作運行機制初探
新課程研究(2016年1期)2016-12-01 05:52:15
可能是方法不對
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
主站蜘蛛池模板: 國產尤物AV尤物在線觀看| 国产高清在线丝袜精品一区| 欧美啪啪精品| 国产在线高清一级毛片| 亚洲成人网在线播放| 无遮挡国产高潮视频免费观看| 国产成人h在线观看网站站| 亚洲日韩国产精品无码专区| 国产精品亚洲一区二区在线观看| 国产综合另类小说色区色噜噜| 亚洲人成人伊人成综合网无码| 性视频久久| 999国内精品久久免费视频| 伊人久久久大香线蕉综合直播| 毛片免费观看视频| 日韩av手机在线| 毛片久久网站小视频| 国产精品人人做人人爽人人添| 国内毛片视频| 强乱中文字幕在线播放不卡| 天天综合网在线| 草逼视频国产| 国产极品粉嫩小泬免费看| 在线精品亚洲一区二区古装| 亚洲欧美日韩色图| 国产成人精品一区二区秒拍1o| 91久久偷偷做嫩草影院电| 午夜国产大片免费观看| 天天色天天综合| 亚洲第一视频网| 亚洲免费黄色网| 国产成人一二三| 久久国产精品77777| 老汉色老汉首页a亚洲| 国产精品丝袜视频| 亚洲无码精彩视频在线观看| 91高清在线视频| 欧美日韩精品在线播放| 亚洲乱码视频| 免费观看三级毛片| 国产精品午夜福利麻豆| 国产性精品| 国产凹凸视频在线观看| 色婷婷电影网| 国产又爽又黄无遮挡免费观看 | 超薄丝袜足j国产在线视频| 最新国语自产精品视频在| 亚洲欧美h| 亚洲人成网址| 国产探花在线视频| 天天做天天爱夜夜爽毛片毛片| 亚洲美女一级毛片| 国产在线第二页| 夜夜操国产| 不卡的在线视频免费观看| 国产欧美日韩精品第二区| 国产精品一区不卡| 亚洲最新在线| 国产精品成人久久| 2021精品国产自在现线看| 99久久精品国产综合婷婷| 亚洲成人www| 国产极品美女在线播放| 免费又黄又爽又猛大片午夜| 亚洲一区二区约美女探花| 国产另类乱子伦精品免费女| 91视频国产高清| 超清人妻系列无码专区| 91欧美亚洲国产五月天| 91久久夜色精品| 亚洲一级毛片在线播放| 日韩精品一区二区深田咏美| 国产一二视频| 亚洲一区二区三区国产精品| 久草视频中文| 免费不卡视频| 亚洲爱婷婷色69堂| 亚洲欧美日韩中文字幕一区二区三区 | 青青青视频蜜桃一区二区| 激情午夜婷婷| 中国一级特黄大片在线观看| 狠狠色丁香婷婷|