2011-07-12 71 views
0

的行爲我有一個問題,我必須在客戶端發出請求和完成請求時,服務器會發送一個通知返回給客戶端現有的客戶端服務器(基於套接字)的應用程序。問題上的代理服務器

現在,客戶端只能在服務器位於主機A的情況下直接連接到服務器。某些用戶希望能夠將服務器託管在不同的主機上,客戶端由於安全配置原因無法直接連接到該主機。

我的問題是:將代理服務器解決這個問題?例如,客戶端連接到他們認爲是服務器,但實際上是代理服務器。但是發送到真實服務器的源IP發生了什麼?它仍然是客戶的IP嗎?如果是這樣,那麼我的狡猾的計劃使用代理服務器將工作。但如果不是一切都會失敗(我認爲)?

基本上,簡單來說問題是做代理服務器莫名其妙地編造來自:數據包的IP一部分,這樣接收方將發回任何響應/消息的實際客戶端?或者它以其他方式工作?

我的想法是代理,使每個客戶端和請求的記錄。例如ip:1.1.1.1希望獲得google.com,然後當google.com代理的響應返回時,它必須爲1.1.1.1並轉發到那裏。但我不確定這是如何工作的。只是尋找高級設計的工作原理。

任何人都可以澄清我嗎?

安格斯

回答

0

如果這是TCP,響應通常會在請求進入的同一連接中發回。不需要源IP地址。服務器響應代理,代理響應客戶端。

+0

我認爲我的項目我需要寫一個。我會看一些源代碼。我假設在客戶端和代理之間存在持續連接,直到代理從真實服務器接收到數據,然後代理在同一套接字連接上發回響應。謝謝。 –

0

我建議你如何TCP/IP工作,以及對各種類型的proxies在那裏讀了,但總結:

  • 客戶的真實IP地址通常不是通過代理時保存轉發到服務器,
  • 基於IP的客戶端跟蹤方案或多或少是無用的,因爲NAT的擴散。