我正在尝试设置一个非常简单的套接字应用程序。我的服务器代码是:
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地址中包含主机名?任何帮助将非常感激!
答案 0 :(得分:3)
我刚刚总结了我们的意见,所以你的问题是:
当您尝试使用客户端程序时,请通过Internet连接到服务器,而不是LAN。 你应该配置 您的路由器上有port mapping。
然而,你只需要配置 您的服务器计算机port mapping。
完成后,您可以使用客户端程序连接到您的服务器prigram。