国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于C#的網(wǎng)絡(luò)通信實現(xiàn)

2018-09-13 11:22:00程志祥
電腦知識與技術(shù) 2018年17期

程志祥

摘要:在 Visual Studio 2012應(yīng)用程序軟件中,選擇C#開發(fā)環(huán)境,分析了網(wǎng)絡(luò)編程經(jīng)常使用的類以及它們的屬性、方法和用途等,通過使用網(wǎng)絡(luò)編程,設(shè)計了服務(wù)器與客戶機通訊程序,可以達到服務(wù)端與客戶端雙向通信的目的,實驗表明,本設(shè)計具有友好的界面,可以較好地完成通信。

關(guān)鍵詞:VS2012;C#;TCPClient 類;TCPListener 類;Socket類

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)17-0031-02

C#是Microsoft在2000年7月推出.NET Framework的初版時提出的一種全新語言[1]。其派生于C/C++,語法更加簡化,非常適合快速學(xué)習(xí)開發(fā),C#語言吸取了C/C++的優(yōu)點,摒棄了它們的煩瑣之處。

利用Visual C#語言可以方便快速編寫應(yīng)用程序,互聯(lián)網(wǎng)時代已經(jīng)離不開網(wǎng)絡(luò)信息的交換,為了方便不同計算機和不同網(wǎng)絡(luò)之間相互連接,進行數(shù)據(jù)資源共享,需要使用網(wǎng)絡(luò)通信協(xié)議。當(dāng)前,TCP/IP協(xié)議是用得比較普遍的類型 [2]。

1 實現(xiàn)網(wǎng)絡(luò)通信的主要類

網(wǎng)絡(luò)通信一般會用到三大類,使用Sockets類具有許多優(yōu)勢,與Sockets網(wǎng)絡(luò)應(yīng)用程序有關(guān)的類處于System.Net.Sockets命名空間中,Socket類擁有許多屬性和方法,完全支持套接字的編程,可以實現(xiàn)對端口的綁定、監(jiān)聽以及連接、數(shù)據(jù)傳輸?shù)饶康腫3]。

1.1 TcpClient類

基于TcpClient類的編程,使得以傳輸控制協(xié)議TCP網(wǎng)絡(luò)通信的調(diào)用形式更為方便,其主要用于Client端編程,如表1列出了其常用屬性和方法。

1.2 TcpListener類

TCP協(xié)議服務(wù)器端的設(shè)計通常會用到TcpListener類,它屬于.NET框架下網(wǎng)絡(luò)通信中的應(yīng)用層,通常是監(jiān)視TCP端口上客戶端的請求,如表2列出了其常用的屬性和方法。

1.3 Socket類

Socket類提供了對套接字的支持[3],由于C#語言語法簡潔、功能強大,因此基于套接字的網(wǎng)絡(luò)編程變得十分簡單,如表3列出了其常見屬性和方法。

2 通信機制的設(shè)計與實現(xiàn)

TCP網(wǎng)絡(luò)通訊運行時,它將會先初始化服務(wù)器端的程序,接著使用Socket類來創(chuàng)立一個實例,繼而使用Bind()方法將實例與服務(wù)器IP地址綁定在一起,做好準備工作;接著使用Listener()方法進入開始監(jiān)聽客戶機端的狀態(tài),同時指明等候服務(wù)器請求隊列的長度;然后,使用Accept()方法等候客戶端發(fā)出連接申請。客戶端與服務(wù)端一樣,也會使用Socket創(chuàng)立一個實例,然后使用Connect()方法與服務(wù)器建立連接。在服務(wù)器端監(jiān)聽的過程中,當(dāng)客戶端發(fā)出連接請求且被服務(wù)器端接收到,就表明服務(wù)器端與客戶機端連接成功,此時可以進行通信了,可利用網(wǎng)絡(luò)流 NetworkStream 的讀Read()方法以及寫Write()方法達到發(fā)送或接收數(shù)據(jù)包的目的,其通訊流程如圖1所示。

3 實驗結(jié)果與分析

服務(wù)端與客戶端界面設(shè)計如上圖所示,服務(wù)端輸入有效且格式正確的IP地址以及監(jiān)聽端口,點擊開始監(jiān)聽按鈕,客戶機端輸入相同的IP地址和請求端口,點擊請求連接按鈕,在服務(wù)器端statusStrip1上顯示與客戶建立連接,如圖2所示;在客戶機端的statusStrip1上也會自動顯示與主機和端口連接成功,如圖3所示。此時服務(wù)器端和客戶機端就能互相通信了。如圖4所示,在服務(wù)器端發(fā)送消息框中輸入問候語,點擊發(fā)送信息按鈕,消息成功發(fā)送,如圖5所示,在客戶機端的接受消息框中會顯示所接收到的信息,即服務(wù)器端的發(fā)送消息框中的信息,消息成功接收。如圖5所示,在客戶機端發(fā)送信息框中輸入回復(fù)的消息,點擊發(fā)送消息按鈕,信息成功地從客戶機端發(fā)送出去。如圖4所示,在服務(wù)器端的接收信息框中會顯示來自客戶機端的消息,即消息成功接收。達到了服務(wù)器端和客戶機端雙向通信的目的。

4 結(jié)語

筆者采用Visual Studio 2012 開發(fā)平臺,利用C#的Windows窗體應(yīng)用程序進行了網(wǎng)絡(luò)通信的探討,用到了網(wǎng)絡(luò)編程常用的類,方便快速地建立了網(wǎng)絡(luò)連接,Sever端和Client端成功通信,完成了數(shù)據(jù)發(fā)送與接收。TCP在連接方式上一般能夠分為長期連接和短期連接,考慮TCP通訊的特點和本設(shè)計的主旨,筆者選用長期連接,連接成功后,通訊不會主動閉塞,服務(wù)器端和客戶機端可以長時間通信,符合聊天的特點。

參考文獻:

[1] Kali Watson,Christian Nagel .C#入門經(jīng)典[M].齊立波,譯.5版.北京:清華大學(xué)出版社,2010 .

[2] 劉蓓麗,劉大紅.基于Visual C#的網(wǎng)絡(luò)通信編程技術(shù)[J] .Electronic Science and Technology,2013(11):151-153

[3] 周存杰 .C#網(wǎng)絡(luò)編程實例教程[M].北京:北京希望電子出版社,2002.

鄂伦春自治旗| 通山县| 宜都市| 淄博市| 灵璧县| 稷山县| 宝应县| 育儿| 高安市| 曲松县| 富裕县| 陇川县| 铜陵市| 沾益县| 大埔区| 山西省| 漳州市| 稷山县| 大安市| 晋城| 延庆县| 义马市| 百色市| 扎赉特旗| 康保县| 石河子市| 夹江县| 奉贤区| 馆陶县| 祁阳县| 万载县| 九龙城区| 福清市| 大姚县| 红桥区| 庄河市| 周口市| 大新县| 九龙坡区| 嘉禾县| 惠来县|