主頁 > 移動端開發 > 為什么兩個客戶端之間可以進行Internet通信?

為什么兩個客戶端之間可以進行Internet通信?

2022-04-07 15:13:25 移動端開發

注意:我的術語和理解很可能是不正確的,請教育我!

TL;博士

為什么我不能在沒有埠轉發的情況下通過 Internet 從一個客戶端連接到另一個客戶端?
這與將兩個客戶端連接在一起的任何基于網站/互聯網的軟體有何不同?

我讀過的

  • 沒有埠轉發就無法連接到已知 IP

兩種解決方案 - 最簡單的是他的防火墻上的埠轉發規則,第二種是您建議兩個客戶端都連接到的外部服務器。

  • 在 Python 中連接計算機

可以從本地網路外部訪問計算機,但這通常取決于您作業所在機構的政策。最簡單的方法是進行埠轉發...

我的理解

路由器保護所有客戶端計算機不受外部連接(例如防火墻)的影響。這可以防止兩個客戶端通過 Internet 連接,即使它們知道彼此的 IP 地址,除非您明確告訴路由器讓它們通過埠轉發之類的方式進行通信。

我一直認為網站只是在某處計算機上運行的服務器。但顯然這是不正確的,因為我們剛剛確定在計算機上運行的服務器無法通過 Internet 連接到另一臺計算機,因為防火墻。

  • 我(客戶端)可以打開一個瀏覽器,進入一個網路域(外部IP服務器),然后下載一張圖片。
  • 但是我(服務器)無法撰寫程式將圖片發送到外部 IP(客戶端)。
  • 我也(客戶端)無法撰寫程式來連接到外部 IP(服務器)并從中下載圖片。

Questions (looks like a lot but it's repetitive)

How is an external server that a client connects to (which has an external IP and is accepted through the router's firewall) any different from an external server that a client connects to (which has an external IP but is not accepted through the router's firewall)?

Essentially what is the difference between my computer running a server and a web domain server (computer).

What is different about the ISP, router, firewall of a web domain server from my own computer.

What is the difference between a computer I rent online running my server program which anybody in the world can connect to and my own computer running my server program which nobody can connect to (outside my LAN).

Why is it impossible for my own computer to run a server which anybody can connect to. What is the difference between a central server and a server on a computer in my LAN?

uj5u.com熱心網友回復:

總的來說,我認為您的困惑是基于我們可以在互聯網上做vs什么,典型的互聯網用戶的配置和包是什么。

在進一步討論之前,我不會假設典型的IPv4 選項而不是 IPv6 來回答您的問題。

當我們談論公共服務器 IP 時,我們真正的意思是 靜態的、擁有的外部 IP 地址這些 IP 地址不會更改并由組織控制。這就是為什么他們經常有一個通過 DNS 與他們關聯的域名。在互聯網上發送到該地址的所有流量都進入他們的設備(租用或其他方式)。因此,他們可以選擇允許/禁止流量到達實際上會對資料執行某些操作的服務器。

Web域服務器的ISP,路由器,防火墻與我自己的計算機有什么不同。

您的互聯網是通過一個動態的、經過 NAT 的(可能是CG-NAT的)公共 IP 地址。您的公共地址會定期更改。這實施起來更便宜,并且假設您只想建立出站連接(獲取網站,而不是托管網站)。當您希望它在埠上偵聽時,您必須明確告訴它改變其行為。

我在線租用的計算機運行我的服務器程式,世界上任何人都可以連接到我自己的計算機運行我的服務器程式,沒有人可以連接到(我的局域網之外)有什么區別。

它有一個靜態公共 IP。

為什么我自己的電腦無法運行任何人都可以連接的服務器

這不是真的。正如您所提到的,如果您的運營商允許埠轉發,您可以打開一個連接到 Internet 的埠。您還可以使用更高級的策略,例如Nat-punching

結束語 向您的互聯網提供商詢問靜態 IP 計劃的費用(不需要購買)是了解他們如何提供真正的服務器外部 IP 的好方法。

IPv6 也試圖做到這一點,因此 NAT 是可選的,任何人都可以托管任何東西。運營商采用它的速度非常緩慢。

uj5u.com熱心網友回復:

在您的家庭網路上,您有一個家庭路由器。這個家用路由器使用一種稱為 NAT 的技術,它會破壞您的 Internet 連接,然后用膠帶將其大部分重新組合在一起。這樣做是因為否則沒有足夠的 IP 地址讓每個人都擁有一個。

NAT 攔截來自您的計算機、電話等的連接,并使它們看起來像是來自家庭路由器。網路之外的一切都認為您的網路是一臺具有一個 IP 地址(路由器的 IP 地址)的計算機(即路由器)。就互聯網而言,您的計算機不存在,您的手機、筆記本電腦或平板電腦也不存在。

您無法從 Internet 連接到您的計算機,因為您的計算機實際上在 Internet 上沒有 IP 地址。哦,當然,您的計算機認為它確實如此 - 那些 192.168 事物之一 - 但這基本上只是 NAT 路由器和您的計算機之間的假裝游戲。

網路外的人只能連接到路由器,因為那是互聯網上真正存在的唯一 IP 地址。因此,如果您想運行服務器,它們必須連接到路由器,并且您必須告訴路由器如何處理該連接。這是埠轉發。否則,路由器無法知道如何處理連接請求。

在理想情況下,您的臺式計算機將只有一個 IP 地址,如果您想連接到臺式計算機,您將連接到臺式計算機的 IP 地址,就是這樣。這是IP地址短缺之前的情況。這也是今天的 IPv6 的情況,那里不缺。如果您沒有 IPv6,請咨詢您的 ISP。如果您的 ISP 不支持 IPv6,那么他們的服務很糟糕,您應該使用不同的服務。


當您租用服務器時,他們不會將租用的服務器放在 NAT 路由器后面,因為它們毫無用處。您可以租用的每臺服務器都有自己的 IP 地址。

您的 ISP 可能也有一個 NAT 路由器,因為甚至沒有足夠的 IP 地址讓每個家庭都獲得一個。NAT翻倍,破損翻倍。而且您的 ISP不會在他們的上設定埠轉發。在這種情況下,如果你問得好并付給他們一大筆錢,他們可能會給你你自己的 IP 地址(將你的路由器連接到 Internet)。你仍然想在你的路由器上使用 NAT,否則你會為更多的 IP 地址支付更多的錢。

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/457318.html

標籤:python sockets networking tcp

上一篇:JavaSockets socket.io-client(Angular13)=失敗的連接和亂碼

下一篇:將滑鼠懸停在影像上時顯示文本資料[React功能組件]

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more