兼容IPv4與IPv6的Winsock網絡編程研究
根據以上所述,下面開發一個可同時應用于IPv4和IPv6的實現Daytime協議的程序。該程序基于c/s結構,客戶端使用TCP協議連接到服務器端,向服務器發送請求;服務器收到請求后,將當前的時間發回客戶端。
4.1 服務器端程序設計
服務器端首先啟動,通過調用socket()建立一個Socket,然后調用bind()將該Socket和本地網絡地址聯系在一起,再調用listen()使Socket做好偵聽的準備,并規定請求隊列的長度,之后就調用accept()接收連接。連接建立后,服務器端創建一個通信用的’Sock-et,把當前時間發回給客戶端。最后,在數據傳送結束后,調用close()關閉Socket。
服務器端設計過程如下:
(1)創建服務器端套接字本文引用地址:http://www.104case.com/article/157984.htm
(3)監聽并接收連接
4.2 客戶端程序設計
客戶端創建一個Socket,并調用connect()和服務器建立連接。連接建立后,客戶端等待服務器返回的當前時間。最后,待數據傳送結束后,調用close()關閉Socket。
客戶端設計過程如下。
(1)創建客戶端套接字
5 程序運行后的結果
當服務器運行后,可同時在IPv4和IPv6地址監聽,客戶端向服務器發送請求,服務器接到請求后,向客戶端返回一個當前時間。此實驗達到了預期效果。
服務器端運行結果如圖1所示。
6 結 語
雖然IPv6網絡已經開始實驗性部署,但是IPv4網絡向IPv6網絡的過渡和互通仍有一定難度,IPv4和IPv6網絡還需共存一段時間,因此開發能夠同時支持IPv4和IPv6的網絡應用程序會變得越來越重要。
在此編寫了一個能夠同時支持IPv4和IPv6協議的程序,此程序可以方便地進行今后其他應用協議及軟件的移植,需在服務器端設計過程(4)及客戶端設計過程(3)中根據其具體協議及軟件進行相應改變。
評論