远程连接到简单的套接字Python服务器

Kex*_*Kex 5 python sockets tcp linode

我正在尝试设置一个非常简单的套接字应用程序。我的服务器代码是:

import socket

s = socket.socket()
host = socket.gethostname()

port = 1234
s.bind((host,port))

s.listen(5) #Here we wait for a client connection
while True:
    c, addr = s.accept()
    print "Got a connection from: ", addr
    c.send("Thanks for connecting")
    c.close()
Run Code Online (Sandbox Code Playgroud)

我将此文件放在远程 Linode 服务器上并使用python server.py. 我已使用以下命令检查端口是否已打开nap

PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
1234/tcp open  hotline
Run Code Online (Sandbox Code Playgroud)

我现在在本地计算机上运行 client.py:

import socket              # Import socket module

s = socket.socket()        # Create a socket object
port = 1234                # Reserve a port for your service.

s.connect(("139.xxx.xx.xx", port))
print s.recv(1024)
s.close                    # Close the socket when done
Run Code Online (Sandbox Code Playgroud)

但是我没有收到任何类型的活动或连接报告。有人可以给我一些指示,告诉我我可能需要做什么吗?我是否需要在 client.py 中指定的 IP 地址中包含主机名?任何帮助将非常感激!

Kev*_*uan 4

我刚刚总结了我们的评论,所以您的问题是这样的:

当您尝试使用客户端程序通过互联网(而不是局域网)连接到服务器时。您应该 在路由器上配置端口映射。

但是,您只需 为服务器计算机配置端口映射即可。
完成此操作后,您可以使用客户端程序连接到您的服务器程序。