我要执行以下简单的服务器代码:
import socket
s = socket.socket() # Create a socket object
host = socket.gethostname() # Get local machine name
port = 22331 # Reserve a port
s.bind((host, port)) # Bind to the port
s.listen(5) # Now wait for client connection.
while True:
c, addr = s.accept() # Establish connection with client.
print('Got connection from', addr)
c.send('Thank you for connecting')
c.close()
执行时出现以下错误:
OSError: [Errno 99] Cannot assign requested address
为什么操作系统不能用地址绑定指定的端口?
如果它使用ip地址但不使用主机名。
在将ip映射到主机名的
/etc/hosts
中应该有类似的内容。你的
/etc/hostname
显然应该和上面一样。重新启动,您应该能够ping您的主机名成功。
您还可以使用
socket.gethostbyname(socket.gethostname())
来获取i.p而不是主机名尝试将
SO_REUSEADDR
选项设置为套接字:相关问题 更多 >
编程相关推荐