簡體   English   中英

通過IP地址進行通訊

[英]Communicating via IP addresses

我剛剛開始學習有關網絡的入門書籍,並且碰巧使用TCP創建了一個簡單的客戶端服務器程序。 服務器的代碼是:

import socket as soc
serverport = 12000
server_socket=soc.socket(soc.AF_INET,soc.SOCK_STREAM)
server_socket.bind(('', serverport))

server_socket.listen(2)
max_bytes = 2048

connection_socket, addr = server_socket.accept()
x = connection_socket.recv(max_bytes)
print("Your sender has sent you: ", x.decode())
connection_socket.send('I received your msg'.encode())

connection_socket.close()

客戶端的代碼是:

import socket as soc
servername = 'xx.xx.xx.xxx'  <- In this I put someone's public IP address
serverport = 12000
client_socket=soc.socket(soc.AF_INET,soc.SOCK_STREAM)
client_socket.connect((servername, serverport))
sentence='This is mathmaniage'
client_socket.send(sentence.encode())

#waits
modified_sentence=client_socket.recv(2048)
print(modified_sentence)
client_socket.close()

如果IP可以識別主機,並且上面的代碼應該可以建立TCP連接並且可以在我的本地主機上運行,​​為什么它不能在兩個不同網絡上的兩個不同計算機上運行? (就像我朋友的PC和我的PC一樣,所以我寫了我朋友的IP地址而不是“ xx.xx.xx.xxx”)

它比您想象的要復雜一些,您的朋友需要具有靜態IP地址和端口轉發。

在此處了解更多信息https://en.wikipedia.org/wiki/Port_forwarding

並且您必須檢查ISP是否阻止了您的請求。

一個簡單的解決方案是VPN,您可以使用一些免費軟件與您的朋友快速輕松地設置VPN。

暫無
暫無

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

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