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

时间:2015-09-14 11:37:10

标签: 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()

我将此文件放在远程Linode服务器上并使用python server.py运行它。我已使用nap检查端口是否已打开:

PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
1234/tcp open  hotline

我现在在本地机器上运行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

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

1 个答案:

答案 0 :(得分:3)

我刚刚总结了我们的意见,所以你的问题是:

  

当您尝试使用客户端程序时,请通过Internet连接到服务器,而不是LAN。   你应该配置   您的路由器上有port mapping

     

然而,你只需要配置   您的服务器计算机port mapping
  完成后,您可以使用客户端程序连接到您的服务器prigram。