将套接字连接到服务器的Python问题

时间:2020-07-04 17:41:39

标签: python sockets

我编写了一个简单的程序,使用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地址,一个是私有的,一个是公开的。我一直在使用公众 一。这与问题有关吗?

0 个答案:

没有答案