我学会了当客户端和服务器都在同一个wifi上时,如何使用套接字连接它们。但是,当客户端计算机和服务器计算机连接到不同的wifi调制解调器时,客户端找不到服务器。我想知道我应该如何更改我的代码,以便客户端能够连接到服务器,而不管它们连接到哪个 wifi 网络?
import sys
from socket import socket, AF_INET, SOCK_DGRAM
SERVER_IP = '192.168.1.2'
PORT_NUMBER = 5000
SIZE = 1024
print ("Test client sending packets to IP {0}, via port {1}n".format(SERVER_IP, PORT_NUMBER))
mySocket = socket( AF_INET, SOCK_DGRAM )
myMessage = "Hello!"
b_myMessage = myMessage.encode()
print(type(b_myMessage))
myMessage1 = "Ended"
i = 0
while i < 10:
mySocket.sendto(b_myMessage,(SERVER_IP,PORT_NUMBER))
i = i + 1
mySocket.sendto(myMessage1.encode('utf-8'),(SERVER_IP,PORT_NUMBER))
sys.exit()
我相信你需要使用
socket(AF_INET, SOCK_STREAM)
这样它就会通过TCP连接,然后在你的PC和WiFi路由器上转发端口5000(或你正在使用的任何端口(。然后,需要在代码中将服务器 IP 更改为服务器的公共 IP,而不是专用 IP。