在做客戶端與服務器的socket連接併發送數據應用中,通常有以下四種情況:
1)、客戶端在內網,服務器在內網。
對於這種情況,只需要用服務器的內網IP即可。
2)、客戶端在外網,服務器在內網。
對於這種情況,服務器可採用花生殼軟件來進行外網IP與內網IP的映射。
3)、客戶端在內網,服務器在外網。
對於這種情況,只需要用服務器的外網IP即可。
4)、客戶端在外網,服務器在外網。
對於這種情況,只需要用服務器的外網IP即可。
從分析中可以看出,只有情況二是特殊的,由於服務器在內網,而客戶端在外網,若要實現外網客戶端向內網服務器發起TCP的socket連接請求時,可採用花生殼軟件來進行服務器的外網IP與內網IP的映射功能。
花生殼軟件的下載地址爲:http://hsk.oray.com/
下載好軟件後,註冊個帳號並登陸,登陸完之後,如下圖:
可以看到已經爲我們免費分配了一個域名,右擊分配的域名,如下圖:
選擇“域名診斷”選項,彈出本機映射給外網的IP地址,如下圖:
下面開始寫客戶端的socket發起連接請求,注意,若要保證服務器一直可被外網的客戶端訪問,需要保持花生殼軟件處於運行狀態。
如服務器的socket運行配置如下:
對於客戶端而已,我們只需要使用經過花生殼映射的那個外網IP即可,同時加個本機服務器的socket端口號,如在客戶端中的socket配置如下:
測試的運行效果如下: