全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:4761
推到 Plurk!
推到 Facebook!

實體與虛擬IP之間的連線

尚未結案
remmurds
一般會員


發表:17
回覆:14
積分:16
註冊:2006-10-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-01-08 13:14:25 IP:140.130.xxx.xxx 訂閱
我利用TClientSocket與TServerSocket寫了一個簡單的聊天室做為測試
連線型態均為non-blocking
其中Server端電腦用的是實體IP
Client端則是使用DHCP發放的虛擬IP

不知道是甚麼原因
似乎這種連線下容易造成連線不穩或Client端收不到Server端訊息的情況
後來我將Server改到DHCP底下
就沒有這個問題了

請問各位有沒有遇到過類似的情況呢?
------
隨筆網誌: http://reassert.blogspot.com
編輯記錄
remmurds 重新編輯於 2008-01-08 13:19:22, 註解 無‧
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-01-08 21:15:03 IP:61.64.xxx.xxx 訂閱
IP 就是 IP
實際與自用 IP 都一樣
你的網路環境如何設定才是重點
既是不同網段,那 routing 就很重要,不然一定會掉包

===================引 用 remmurds 文 章===================
我利用TClientSocket與TServerSocket寫了一個簡單的聊天室做為測試
連線型態均為non-blocking
其中Server端電腦用的是實體IP
Client端則是使用DHCP發放的虛擬IP

不知道是甚麼原因
似乎這種連線下容易造成連線不穩或Client端收不到Server端訊息的情況
後來我將Server改到DHCP底下
就沒有這個問題了

請問各位有沒有遇到過類似的情況呢?
lu
高階會員


發表:11
回覆:189
積分:195
註冊:2003-11-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-01-11 08:57:52 IP:203.73.xxx.xxx 訂閱
因為你用的是TClientSocket與TServerSocket,這兩個物件是屬於 TCP 傳輸
而TCP傳輸跟DHL一樣『使命必達』,所以基本上只要連線正常,且TClientSocket與TServerSocket傳送及接收的過程,沒有發生任何例外狀況,資料就一定會送達(此為TCP這個通訊協定的特性)

比較有可能的是,你的程式有點邏輯上的錯誤

我個人用TClientSocket與TServerSocket寫的程式,不管事實體IP、虛擬IP甚至穿越 Internet / Intarnet 跨越防火牆等等,都可以正常運作

===================引 用 remmurds 文 章===================
我利用TClientSocket與TServerSocket寫了一個簡單的聊天室做為測試
連線型態均為non-blocking
其中Server端電腦用的是實體IP
Client端則是使用DHCP發放的虛擬IP

不知道是甚麼原因
似乎這種連線下容易造成連線不穩或Client端收不到Server端訊息的情況
後來我將Server改到DHCP底下
就沒有這個問題了

請問各位有沒有遇到過類似的情況呢?
RootKit
資深會員


發表:16
回覆:358
積分:419
註冊:2008-01-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-01-11 18:45:35 IP:61.222.xxx.xxx 訂閱
>針對這句"...不管事實體IP、虛擬IP...都可以正常運作"
不對!

虛擬IP 可通實體IP ,但實體IP 不能通虛擬IP。所以 Server 不能主動向 Client 通訊。
就我的理解是這樣。

所以造成 很多軟體為了要解決這個問題,只能 Client 定期向 Server 聯繫。

如果我不對,請指正。

===================引 用 lu 文 章===================
因為你用的是TClientSocket與TServerSocket,這兩個物件是屬於 TCP 傳輸
而TCP傳輸跟DHL一樣『使命必達』,所以基本上只要連線正常,且TClientSocket與TServerSocket傳送及接收的過程,沒有發生任何例外狀況,資料就一定會送達(此為TCP這個通訊協定的特性)

比較有可能的是,你的程式有點邏輯上的錯誤

我個人用TClientSocket與TServerSocket寫的程式,不管事實體IP、虛擬IP甚至穿越 Internet / Intarnet 跨越防火牆等等,都可以正常運作

===================引 用 remmurds 文 章===================
我利用TClientSocket與TServerSocket寫了一個簡單的聊天室做為測試
連線型態均為non-blocking
其中Server端電腦用的是實體IP
Client端則是使用DHCP發放的虛擬IP

不知道是甚麼原因
似乎這種連線下容易造成連線不穩或Client端收不到Server端訊息的情況
後來我將Server改到DHCP底下
就沒有這個問題了

請問各位有沒有遇到過類似的情況呢?
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-01-13 09:05:59 IP:61.225.xxx.xxx 未訂閱
你先把什麼叫 Client 什麼叫 Server 搞清楚。
Client 是提出"需求"者。
Server 是回應"需求"者。
那 Server 就沒有必要"主動"向Client 通訊了。

再者。何謂"主動"通訊?
在這些元件來看就是 connect 這個函數。
你看看 Server 有 connect 這個函數嗎?
server 有的只有 accept 函數。

至於,你的問題,在於 client 跟 server connect 完成之後
所建立的這個通訊管道。 server 就可以用來回應了。
這也就是你所說的"主動"向 client 通訊了。

你可以參考
http://delphi.ktop.com.tw/board.php?cid=30&fid=67&tid=88689

PS.DHCP 所取得的 IP 不見得是你口中的虛擬 IP. 這個觀念有錯。
===================引 用 RootKit 文 章===================
>針對這句"...不管事實體IP、虛擬IP...都可以正常運作"
不對!

虛擬IP 可通實體IP ,但實體IP 不能通虛擬IP。所以 Server 不能主動向 Client 通訊。
就我的理解是這樣。

所以造成 很多軟體為了要解決這個問題,只能 Client 定期向 Server 聯繫。

如果我不對,請指正。
編輯記錄
暗黑破壞神 重新編輯於 2008-01-13 09:08:47, 註解 無‧
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-01-14 01:28:23 IP:61.64.xxx.xxx 訂閱
IP 就是 IP 
如果你要堅決的認為「虛擬IP 可通實體IP ,但實體IP 不能通虛擬IP」
你自己去看 IP 相關書籍吧,因為這不是三言兩語可以跟你說的清楚的

===================引 用 RootKit 文 章===================
>針對這句"...不管事實體IP、虛擬IP...都可以正常運作"
不對!

虛擬IP 可通實體IP ,但實體IP 不能通虛擬IP。所以 Server 不能主動向 Client 通訊。
就我的理解是這樣。

所以造成 很多軟體為了要解決這個問題,只能 Client 定期向 Server 聯繫。

如果我不對,請指正。

===================引 用 lu 文 章===================
因為你用的是TClientSocket與TServerSocket,這兩個物件是屬於 TCP 傳輸
而TCP傳輸跟DHL一樣『使命必達』,所以基本上只要連線正常,且TClientSocket與TServerSocket傳送及接收的過程,沒有發生任何例外狀況,資料就一定會送達(此為TCP這個通訊協定的特性)

比較有可能的是,你的程式有點邏輯上的錯誤

我個人用TClientSocket與TServerSocket寫的程式,不管事實體IP、虛擬IP甚至穿越 Internet / Intarnet 跨越防火牆等等,都可以正常運作

===================引 用 remmurds 文 章===================
我利用TClientSocket與TServerSocket寫了一個簡單的聊天室做為測試
連線型態均為non-blocking
其中Server端電腦用的是實體IP
Client端則是使用DHCP發放的虛擬IP

不知道是甚麼原因
似乎這種連線下容易造成連線不穩或Client端收不到Server端訊息的情況
後來我將Server改到DHCP底下
就沒有這個問題了

請問各位有沒有遇到過類似的情況呢?
lu
高階會員


發表:11
回覆:189
積分:195
註冊:2003-11-19

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-01-14 08:58:10 IP:203.73.xxx.xxx 訂閱
不曉得你所謂的Server 不能主動向 Client 通訊,指的是什麼?是SERVER不能主動Connect至CLIENT嗎?還是SERVER不能主動送資料給CLIENT?
若是SERVER不能主動Connect至CLIENT,那你說對了,不過這跟實體IP或虛擬IP無關,甚至SERVER和CLIENT是處於同一個網段,一樣都做不到,只有CLIENT可以主動Connect至SERVER建立連線。

若是第2個SERVER不能主動送資料給CLIENT,那你觀念有點錯誤,一旦連線建立後,溝通就是雙向滴,無所謂的主動或被動
舉個例子,你有玩MSN吧?MSN就是用CLIENT Socket寫成滴(當然不止這麼簡單啦,不過主要還是用 Client Socket),MSN的主機是 Server Socket,你想想MSN的主機,有沒有主動送資料給你?當你的朋友上線時,MSN會主動通知你某某某上線了,甚至有朋友發話給你時,MSN主機會主動通知你

記住一句話,溝通是雙向滴,任何一方都可以主動發話.....唯一的限制是,雙方的溝通機制是否允許而已(例如:MSN允許SERVER主動送訊息給CLIENT)

===================引 用 RootKit 文 章===================
>針對這句"...不管事實體IP、虛擬IP...都可以正常運作"
不對!

虛擬IP 可通實體IP ,但實體IP 不能通虛擬IP。所以 Server 不能主動向 Client 通訊。
就我的理解是這樣。

所以造成 很多軟體為了要解決這個問題,只能 Client 定期向 Server 聯繫。

如果我不對,請指正。


RootKit
資深會員


發表:16
回覆:358
積分:419
註冊:2008-01-02

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-01-14 11:11:30 IP:61.222.xxx.xxx 訂閱
好吧!我在試圖說明清楚。因為我也想搞清楚,實體IP可否主動向虛擬IP連線。

暗黑
不需針對Client 與Server 有何不同下去做討論。因為我只是答覆上面的問題簡寫。
至於跟DHCP 也無關。

一個很明顯例子。
當虛擬IP這一方為Listen 狀態下。實體IP有無機會向虛擬IP主動聯繫。而非由虛擬IP請求後回復。

至於 MSN 方法,因該是利用Client請求的方式。
編輯記錄
RootKit 重新編輯於 2008-01-14 11:13:00, 註解 無‧
lu
高階會員


發表:11
回覆:189
積分:195
註冊:2003-11-19

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-01-14 11:30:08 IP:203.73.xxx.xxx 訂閱
當虛擬IP這一方為Listen 狀態下,實體IP有無機會向虛擬IP主動聯繫,而非由虛擬IP請求後回復。
這句話的意思應該是,虛擬IP是Server Socket 而實體IP是 Client Socket ,實體IP的Client Socket 是否可以 Connect 至虛擬IP的 Server Socket 建立連線,是吧?我應該沒有誤解吧?

這個問題,在一般的情況之下,答案是~~不行
但是若你會設定 Router 或是提供NAT的設備(最常見的就是市面在賣的 『動態IP分享器』)
這個問題的答案是~~可以,至於怎麼設定,則是離題了

呵呵~~好玩吧~~這就是TCP/IP的特性,有太多可能性了,別忘了TCP/IP當初是設計出來要應付核彈攻擊後,還要能通訊滴


===================引 用 RootKit 文 章===================
好吧!我在試圖說明清楚。因為我也想搞清楚,實體IP可否主動向虛擬IP連線。

暗黑
不需針對Client 與Server 有何不同下去做討論。因為我只是答覆上面的問題簡寫。
至於跟DHCP 也無關。

一個很明顯例子。
當虛擬IP這一方為Listen 狀態下。實體IP有無機會向虛擬IP主動聯繫。而非由虛擬IP請求後回復。

至於 MSN 方法,因該是利用Client請求的方式。
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#10 引用回覆 回覆 發表時間:2008-01-14 14:42:25 IP:61.64.xxx.xxx 訂閱
恩,這樣說也行,但是在網路,我是認為並沒有所謂的一般情形
若是指接上線沒作設定,那也不是一般情形,只是自動設定代勞,只要是網路,就必須設定,不管是人工或是自動
因為,一定會有 route,只是正不正確而已,至於說私有 IP 不可在網路上使用,乃是因為,「出了你家,沒有人幫你 route」
如果你連線的路徑上,一路都有人幫你 route ,私有 IP 還是可以使用

但是因為私有 IP,被我們設定為私有,表示會有一堆人用(會重複,公用則不會,公用有唯一性),那到底 route 到誰家?這樣設定起來會超複雜吧!所以既然為私有,就沒必要在網際網路上使用,不然只是搬石頭雜自己腳

但是

但是若是在一個封閉區域內使用,只要 IP 不重複(如果你要重複也行,用NAT相關方式處理,也是會通,但也是自找麻煩就是了),你愛怎麼設定,就怎麼設定
Ping 得到,就是有通,沒有規定誰主動誰被動,主動、被動,是網路程式設計上的規劃設定
如果硬體有接好,ping 不通,就先看 route 是否正確,沒有正確的設定,就算同一 HuB 下,也會裝作沒聽到,你自己可以弄個簡單的環境驗證,要證實有收到但不處理,就必須截聽封包

再看使否有 NAT 需求,最後才思考其他因素

ping 通了,程式不通,那是你程式設計上的問題

不穩就是不穩,收不到就是收不到
你不先確定硬體正常,如何決定是軟體的錯?

還是照步來,一個一個排除才為上策

問題要依據範圍特性,一步一步排除,不是你想、你認為之類的亂猜
TCP/IP 又不是一天兩天的技術,排解問題早就有方式可以依循,不要猜啦,太浪費時間

===================引 用 lu 文 章===================
當虛擬IP這一方為Listen 狀態下,實體IP有無機會向虛擬IP主動聯繫,而非由虛擬IP請求後回復。
這句話的意思應該是,虛擬IP是Server Socket 而實體IP是 Client Socket ,實體IP的Client Socket 是否可以 Connect 至虛擬IP的 Server Socket 建立連線,是吧?我應該沒有誤解吧?

這個問題,在一般的情況之下,答案是~~不行
但是若你會設定 Router 或是提供NAT的設備(最常見的就是市面在賣的 『動態IP分享器』)
這個問題的答案是~~可以,至於怎麼設定,則是離題了

呵呵~~好玩吧~~這就是TCP/IP的特性,有太多可能性了,別忘了TCP/IP當初是設計出來要應付核彈攻擊後,還要能通訊滴

我倒是很好奇,核彈攻擊後,網路真的可以用嗎?
依據現今的核武規模,核彈攻擊後(應該不只一顆吧,大家射來射去的):

1. 網路線路或是交換機房,可以防核彈嗎?
2. 那電哪裡來?沒電,網路可以用嗎?
3. 如果人死光了,那誰來用網路?外星人嗎?

如果以上都不行,那發展心電感應還可能比較快喔!我思,固有通,呵呵

我想還是不要有戰爭好,現在生活不錯啊?誰想到退 100 年,過走路、挑水、困苦生活?只因我們把所有物資拿來戰爭?
啊,上網打打「網路遊戲戰爭」就好了啦!

===================引 用 RootKit 文 章===================
好吧!我在試圖說明清楚。因為我也想搞清楚,實體IP可否主動向虛擬IP連線。

暗黑
不需針對Client 與Server 有何不同下去做討論。因為我只是答覆上面的問題簡寫。
至於跟DHCP 也無關。

一個很明顯例子。
當虛擬IP這一方為Listen 狀態下。實體IP有無機會向虛擬IP主動聯繫。而非由虛擬IP請求後回復。

至於 MSN 方法,因該是利用Client請求的方式。
編輯記錄
syntax 重新編輯於 2008-01-14 14:52:43, 註解 無‧
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#11 引用回覆 回覆 發表時間:2008-06-26 20:50:24 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
系統時間:2024-04-27 6:01:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!