台灣最大程式設計社群網站
線上人數
1393
 
會員總數:246630
討論主題:190056
歡迎您免費加入會員
討論區列表 >> VB6 >> 如果用winsock做到P2P的目的?
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如果用winsock做到P2P的目的?
價值 : 200 QP  點閱數:7820 回應數:29
樓主

竹心(doomkimo)
中級專家
4112 104
4178 1042
發送站內信

捐贈 VP 給 Simon(竹心 )
在下使用winsock做聊天室系統,讓Server做中繼站,沒問題。
問題來了,傳檔問題,總不能靠Server吧。
故在下誠摯的請教版主,如何用Winsock傳透nat?
這問題困擾我好久了,版主,請為在下解惑。
阿哩阿多^_^

搜尋相關Tags的文章: [ winsock ] , [ p2p ] , [ 傳檔 ] , [ 穿透nat ] ,
本篇文章發表於2005-02-04 13:52
== 簽名檔 ==
Simon 喜歡 FreeStyle, 因為這就是Simon Style.
1樓
不錯的參考

QQ的乖乖餃
捐贈 VP 給 QQ的乖乖餃 檢舉此回應
這不可能透過server傳, 沒效率...
實作方式通常是...兩個client端由server互相得知對方的ip...
然後...兩client端自己建立連線來傳, 這和server一點關係都沒有哩
msn的實作方式也類似這樣...
不然..大家都在傳檔案
msn的server早就暴了
本篇文章回覆於2005-02-04 14:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

竹心(doomkimo)
捐贈 VP 給 Simon(竹心 ) 檢舉此回應
的確啊,版主啊,您對於P2P穿透nat有何高見?
Server雖知道Client正確IP,但礙於nat的問題無法穿透...
本篇文章回覆於2005-02-04 16:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
不錯的參考

常運動的胖子
檢舉此回應
一些較有名的即時通有一個變通的做法
因為它的用戶很多
所以一定有用戶是有真實IP
當P2P二端都是在NAT裡時
它會用第三P去轉封包
意思我SERVER轉封包是一樣
但是不會消耗SERVER本身的頻寬



本篇文章回覆於2005-02-04 16:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

竹心(doomkimo)
捐贈 VP 給 Simon(竹心 ) 檢舉此回應
如何轉封包!?我不懂三方連線方法,請胖子大哥為在下解惑。
謝謝
本篇文章回覆於2005-02-04 16:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
不錯的參考

QQ的乖乖餃
捐贈 VP 給 QQ的乖乖餃 檢舉此回應
^___^a 
竟然想穿nat, 這樣不行喔
其實...原理很簡單, 主要是因為winsock一定要有ip指定給它才可以傳

這裡所謂的ip, 是指一台電腦獨有的
若在nat裡面, 那就是和人家共有的, 透過共同的port出來, 這樣根本抓不到

nat出來的封包, 其實還是有某電腦的mac address
所以可以模仿這種方式做出一樣的封包, 送回去有nat的ip, 該電腦就能抓到
之前幫人做檳榔西施聊天網, 做到一半遇到對方資金不足不做了
這個部分也研究到一半就停止, 我有看過如何改這種資訊的網頁, 要找一下囉
這滿底層的, vb要做到可能得花點力氣, 用winsock可能做不到..
要用api實作winsock所有功能才行
本篇文章回覆於2005-02-04 23:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

竹心(doomkimo)
捐贈 VP 給 Simon(竹心 ) 檢舉此回應
看來,要穿透NAT真是個大大大大大大大大大問題~~~~~~
困擾了我二個月,始終研究不出個所以然來.....
難道真的要用Server來Handle所有程序嗎???
看來,得再更努力研究才行了。
感謝QQ老大唷^_^
本篇文章回覆於2005-02-05 09:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
不錯的參考

QQ的乖乖餃
捐贈 VP 給 QQ的乖乖餃 檢舉此回應
透過第三地沒被nat包住的server
就可以輕易達到封包轉送..突破nat的方式

不過,這應該是一定會消耗到該server的頻寬, 
胖子老大講的方式, 其實我不是很了解哩
本篇文章回覆於2005-02-05 15:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

竹心(doomkimo)
捐贈 VP 給 Simon(竹心 ) 檢舉此回應
哎.....看來一台Server挺重要的...
我有個想法,假如→202.147.23.51/192.168.0.5   (對外IP/內網IP)
不知道這種格式是否支援呢?
本篇文章回覆於2005-02-05 21:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
這是nat嗎?!
送封包的ip似乎沒聽過可以支援這種格式...
因為他是包兩層..不是一層包兩個

而且...萬一內層網路是動態配置dhcp
那還是沒搞頭
so, 還是要透過中繼的啦
本篇文章回覆於2005-02-05 21:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
不錯的參考

小白
捐贈 VP 給 Marcus 檢舉此回應
如果是 P2P ,則必須有一台 server 負責做 IP 的「資料庫」...
否則直接使用 winsock 傳輸可也,也不需使用 NAT
在 google 也可以找到很詳細的資料啦。
本篇文章回覆於2005-02-05 23:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

Stanley
檢舉此回應
給你一個建議的方向你可以如果的的客源很大的話,可以朝像Exchange Server去動腦經,他有一種服務叫做Message Service,可以解決大量的封包傳輸,前年我就靠Exchange完成的許多類似的專案
本篇文章回覆於2005-02-06 01:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

竹心(doomkimo)
捐贈 VP 給 Simon(竹心 ) 檢舉此回應
感謝^_^
本篇文章回覆於2005-02-06 11:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

竹心(doomkimo)
捐贈 VP 給 Simon(竹心 ) 檢舉此回應
看了有關於穿透Nat的文獻,在在顯示是實體Port造成虛擬Port之判斷
也更說明了,沒有任何一個方式能完整的穿透Nat....
也說明了IPv6如果全面性開啟,將不用擔心這個問題!?
P2P的商機,網路上都覺得不樂觀、危險。
本篇文章回覆於2005-02-07 19:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
不錯的參考

QQ的乖乖餃
捐贈 VP 給 QQ的乖乖餃 檢舉此回應
IPV6的開放. 跟nat還是沒有直接任何關係...
nat的存在,並不只因為ip不足
而主要是因為想要區隔開和wan之間的聯繫
讓資料的流通可以更安全
不要被莫名其妙的病毒或是駭客輕易的攻擊

很多技術, 也許並沒有很了不起, 卻能在有些時候發揮重大作用
如果真的對winsock連線有興趣, 何彷研究下去, 把技術文件存下
也許有一天就會派上用場哩
本篇文章回覆於2005-02-08 17:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
作者回應

竹心(doomkimo)
捐贈 VP 給 Simon(竹心 ) 檢舉此回應
感謝版主。
本篇文章回覆於2005-02-08 19:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

回覆
如要回應,請先登入.