Python套接字错误发生
我写了这段代码。
import socket
host = 'localhost'
port = 3794
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.bind((host, port))
while 1:
print 'Type message you want to send...'
msg = raw_input()
if msg == '':
s.close()
break
s.sendall(msg)
然后接着执行了这段代码。
Traceback (most recent call last):
File "socket.py", line 11, in ?
s.bind((host, port))
File "<string>", line 1, in bind
socket.error: (99, 'Cannot assign requested address')
有什么问题吗?
你知道怎么解决吗?
3 个回答
0
这个错误通常是因为你要用的端口已经被其他应用程序或服务占用了。你可以选择一个高于注册端口范围的端口号,比如49151以上的数字。
4
我也遇到过这个问题,原因是我试图在错误的主机上进行监听。当我把它改成了一个实际上和运行代码的机器(本地)相关联的IP地址后,问题就解决了。
9
这意味着你已经有一个程序在使用3794这个端口了。
可能是其他的应用程序在用这个端口,或者是你之前运行的脚本没有正常结束,导致这个端口还没有释放。
你可以试着换一个端口号,我相信这样就能正常工作了。