如何在Windows上多次使用Socket地址
这个同样的问题已经被多次提出,并且大部分答案都与TCP/IP
。 但即时通讯寻找Bluetooth
相关。
我试图通过蓝牙在两台机器之间发送信息。 我在linux和windows上都安装了pybluez
,它在两个Os上发现其他附近设备时工作得很好。 后来我用这个代码作为例子发送信息。 它工作得很好,当客户端是Linux机器和服务器是Linux机器。 当我在Windows7上运行服务器端代码时,我得到了错误
server_sock.bind(("",port))
File "C:Python27libsite-packagesbluetoothmsbt.py", line 60, in bind
status = bt.bind (self._sockfd, addr, port)
IOError: Only one usage of each socket address (protocol/network address/port) is normally permitted.
我意识到,一旦使用了端口,只需关闭地址/端口就可以在窗口上使用,但也必须设置为重用(来自SO)。 但bluetooth.BluetoothSocket
内没有类似的库bluetooth.BluetoothSocket
重用地址/端口。
我怎样才能多次使用套接字? 或者有另一种方法,..?
码:
import bluetooth
server_sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM )
port = 1
server_sock.bind(("",port))
server_sock.listen(1)
client_sock,address = server_sock.accept()
print "Accepted connection from ",address
data = client_sock.recv(1024)
print "received [%s]" % data
client_sock.close()
server_sock.close()
我遇到了和你一样的问题,但是昨天解决了这个问题,也许你可以尝试与我一样的方法。 尝试使用不同的端口号,而不是端口1.我个人使用的端口5(1的instea),并停止了这个问题。 希望能帮助到你! 出于某种原因,我还不太确定,端口1在该端口第一次成功连接后无法重新使用。
重置hciconfig,这是因为套接字已被使用
链接地址: http://www.djcxy.com/p/58317.html上一篇: How to use Socket address more than once on windows
下一篇: Can't see mouse and keyboard device with usbManager android