我编写了一个简单的程序,使用python将客户端连接到服务器。 当我使用本地IP地址在本地网络上运行此程序时,一切正常。 我已经在上面有了一个Google云服务器和一个Linux VM。我已经将server.py上传到服务器上, 但是当我运行它时,无法使用客户端代码从计算机进行连接。 我尝试从计算机上ping服务器,并且可以正常工作。我还查看了正在使用的端口 在服务器端监听。当我如下所示离开代码时,未列出端口5555。 当我用server =“”替换server.py中的服务器,然后测试正在监听哪些端口时, 已使用端口5555,但未使用公用IP地址,而是使用了本地IP地址。
这是代码(我删除了与建立网络连接无关的所有内容):
server.py:
import socket
from _thread import *
import pickle
server = "34.89.182.513"
port = 5555
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.bind((server, port))
except socket.error as e:
str(e)
s.listen(4)
print("Waiting for a connection, Server Started")
def threaded_client(conn, player_id):
pass # I've removed this code, since it is not relevant to question
while True:
conn, addr = s.accept()
print("Connected to:", addr)
start_new_thread(threaded_client, (conn, 0))
client.py:
import socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect("34.89.182.513", 5555)
google cloud VM列出了两个不同的IP地址,一个是私有的,一个是公开的。我一直在使用公众 一。这与问题有关吗?