C#應用視頻教程1.1 Socket通信基礎


做Socket通信之前,我們首先要實現幾個基本的功能

獲取本機IP地址(如果我們要做Socket的服務器,肯定不希望用戶每次填寫本機IP地址,而是自動獲取本機IP地址,這一點我們最好能做的比已有的軟件更合理,更好用),下面的方法簡單實現了獲取本機IP地址,后面一個方法還把IPV6的地址也得到了,但是目前還沒有什么用處(可能以后用得到)

 

能PING通一個遠程的IP地址(如果我們要做Socket的客戶端,最好在連接之前能知道目標IP能不能連接上,如果不能PING通,則直接告訴用戶網絡連接有問題就行了,此外還能做心跳包,比如QQ斷線檢測,每隔一定時間PING通就認為網絡連接正常,否則認為網絡有問題,所以這個功能還是比較實用的)

 

能從一個網址解析出他對應的IP地址(這個在自動化領域應用不是很廣泛,因為這個行業里面不管是Socket的服務器還是客戶端都是一些小設備,IP地址都是自己設置上去的,不會牽扯到某個網址的IP,但是為了把這個類做的比較全,也可以加深對Socket相關類的理解,還是有必要涉及一下,讀者至少需要明白其實一個網址就是一個IP地址)

 

了解什么是服務器,什么是客戶端(給別人提供服務的就是服務器,享受服務的就是客戶端,就像賓館提供房間,客戶才能入住),我們可以先用第三方的軟件測試一下(在附件程序中打開SocketTest這個工具,它本身是JAVA寫的,但是很短小很精悍,我們本節教程目的也是實現這樣一個功能),首先是Server端開啟某個Port,然后Client端連接上去,然后就可以互相發消息,當然也可以斷開連接等等(要切記首先必須服務器開啟服務,客戶端才能連接,如果賓館的某個房間不開放,那客戶端就沒法進去,至於房間開放,客戶進去之后,誰跟誰說話都是可以的

 

其次要知道Socket通信的意義,因為他是基於以太網的通訊協議,比串口,總線都要簡單的多,也好用的多,基本上大部分的工業設備都會支持這個協議,而且不受限於操作系統,微軟的,安卓的,Linux,MaxOS的都可以互相發消息。即便是在同一台計算器上,不同軟件之間也可以互相通信,所以把這個通信研究好的意義還是很大的(在下面的測試中,我用了一個另外的調試工具跟SocketTest做通訊測試,像這樣的網絡調試助手網上很容易找到)

 

最后來看一下百度百科對Socket的解釋,比較形象(他比喻成插座)

https://baike.baidu.com/item/socket/281150?fr=aladdin

 

 

 

更多教學視頻和資料下載,歡迎關注以下信息:

我的優酷空間:

http://i.youku.com/acetaohai123

 

我的在線論壇:

http://csrobot.gz01.bdysite.com/

 

問題交流:

QQ:910358960

郵箱:acetaohai123@163.com

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM