簡體   English   中英

如何在兩個不同的網絡中連接兩個不同的計算機

[英]how to connect two different computers in two different networks

下面的代碼在同一網絡上的兩台計算機之間正常工作,但是在兩個不同網絡上的兩台計算機之間卻無法正常工作,我嘗試使用公共IP地址

克林特

import socket               
s = socket.socket()         
port = 10000
ip=input("what is ip : ")
s.connect((ip, port))
print (s.recv(1024))
s.close 

服務器

import socket
s = socket.socket()
ip=socket.gethostbyname(socket.gethostname())
print (ip)
port = 10000           
s.bind((ip, port))       
s.listen(1)                 
while True:
        c, addr = s.accept()
        print ('Got connection from', addr)
        c.send(bytes([int(1)]))
        c.close()       

這個問題已經被問過很多次了,但是我能找到的所有答案是,我必須做“端口轉發”,而沒有任何代碼示例,在他們說的一些答案中,我應該下載將做端口的應用程序轉發給我,但是我不知道如何在我的python代碼中使用它?

端口轉發是您在路由器級別執行的操作。 例如,如果您要連接的兩台計算機位於兩個不同家庭的兩個不同WiFi路由器之后,則需要將兩個位置的兩個WiFi路由器都設置為轉發端口10000(您正在使用的那個)以轉發到內部IP。運行您的代碼的計算機。

您的WiFi路由器具有公共IP(您現在可能正在使用的IP),並且運行python代碼的計算機具有由WiFi路由器分配的網絡內部的本地IP。 端口轉發將流量轉到路由器的公共IP,並在本地網絡內部將其內部轉發到運行程序的某些本地IP的計算機。

換句話說,這不是您將在代碼中執行的操作,而是將在路由器軟件中執行的操作。

如果您有雄心壯志,可以按照本教程進行操作,該教程無需為端口轉發配置設備。 假設您具有支持uPNP的路由器。

https://www.electricmonk.nl/log/2016/07/05/exploring-upnp-with-python/

甚至可能有一個模塊可以解決所有問題。(未檢查其工作原理)

https://pypi.python.org/pypi/UPnP/1.3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM