通过nc或telnet测试python套接字服务器

时间:2017-07-09 19:12:29

标签: python sockets telnet netcat

我有一个简单的插件服务器python

#!/usr/bin/python3           # This is server.py file
import socket                                         

# create a socket object
serversocket = socket.socket(
            socket.AF_INET, socket.SOCK_STREAM) 

# get local machine name
host = socket.gethostname()                           

port = 2115                                           

# bind to the port
serversocket.bind((host, port))                                  

# queue up to 5 requests
serversocket.listen(5)                                           

while True:
    # establish a connection
    clientsocket,addr = serversocket.accept()      

    print("Got a connection from %s" % str(addr))

    msg = serversocket.recv(1024)
    print (msg.decode('ascii'))
    clientsocket.close()

我想通过nc或telnet测试此服务器,例如

telnet 127.0.0.1 2115

但会导致错误 但是当我尝试用另一个用python编写的套接字程序连接时。运作良好

1 个答案:

答案 0 :(得分:1)

执行host = socket.gethostname()后,您的host会被分配到"MacBookPro.local"之类的内容。然后在serversocket.bind((host, port))将服务器绑定到它。因此,您的侦听套接字未绑定到127.0.0.1,因此来自telnet的连接尝试被拒绝。

相反,请尝试serversocket.bind('', port)并重新运行您的服务器。这次,它应该接受telnet连接。