玩蛇网提供最新Python编程技术信息以及Python资源下载!

python ConnectionRefusedError: [Errno 111] Connection refuse

Python3实现了一个简单的udp server和udp client。host指定为'localhost'时,在同一台机器上是运行正常的。

udpserver.py:

from socket import *

HOST = 'localhost'
PORT = 9999

s = socket(AF_INET,SOCK_DGRAM)
s.bind((HOST,PORT))
print('...waiting for message..')
while True:
        data,address = s.recvfrom(1024)
        print(data,address)
        s.sendto('this is the UDP server'.encode('utf-8'), address)
s.close()

udpclient.py:

from socket import *

HOST='localhost'
#HOST='deque.me'
PORT=9999

s = socket(AF_INET,SOCK_DGRAM)
s.connect((HOST,PORT))
while True:
        message = input('send message: ')
        s.sendall(message.encode('utf-8'))
        data = s.recv(1024)
        print(data)
s.close()

如果将udpclient.py里的host改为"deque.me",程序会出现错误。

如果udpclient.py和udpserver.py运行在同一台机器上,也就是'deque.me'这台服务器上,错误如下:

ubuntu@VM-117-216-ubuntu:~/Shield/Py3$ python3 udpclient.py
send message: test
Traceback (most recent call last):
File "udpclient.py", line 12, in <module>
data = s.recv(1024)
ConnectionRefusedError: [Errno 111] Connection refused

如果把udpclietn.py放在另一台windows机器上执行,错误提示图下:

D:ShieldPy3>python udpclient.py
send message: test
Traceback (most recent call last):
File "udpclient.py", line 11, in <module>
data = s.recv(1024)
ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。

试了试将udpserver.py中的host改为'deque.me'和'115.159.29.211'(公网IP地址),均出现如下错误:

root@VM-117-216-ubuntu:~/Shield/Py3# python3 udpserver.py
Traceback (most recent call last):
File "udpserver.py", line 7, in <module>
s.bind((HOST,PORT))
OSError: [Errno 99] Cannot assign requested address

肯定的是'deque.me'是能正确解析到这Linux服务器的。请问,错在哪里?应该该怎么改?

找到答案了,bing('0.0.0.0',port)即可。

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd13928.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月18日 - 17时46分20秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules