我有这个代码:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.bind(('10.0.0.253', 8080))
except:
s.close()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('10.0.0.253', 8080))
s.listen(1)
conn, addr = s.accept()
它绑定,然后如果遇到错误,则会销毁套接字,然后创建一个新套接字并将其绑定到相同的 IP 和端口。由于某种原因,即使关闭套接字后,我也会收到此错误:
Traceback (most recent call last):
File "C:\Users\other\Desktop\tcpReverseShell_Server.py", line 68, in <module>
main()
File "C:\Users\other\Desktop\tcpReverseShell_Server.py", line 66, in main
connect()
File "C:\Users\other\Desktop\tcpReverseShell_Server.py", line 43, in connect
s.bind(('10.0.0.253', 8080))
File "C:\Python27\lib\socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
error: [Errno 10048] Only one usage of each socket address (protocol/network
address/port) is normally permitted
我发现的唯一解决方案是使用s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
,但是当我尝试时,我收到此错误:[Errno 10013] An attempt was made to access a socket in a way forbidden by its access permissions
. I
我使用的是 Windows 10,Python 2.7.13。