在IOS上使用BlueSocket框架的TCP连接问题



通过使用BlueSocket框架并在Mac和IOS之间连接,获得"错误代码:-9989(0x-2705(,连接被拒绝">的错误。

逻辑如下:

我将 Mac 视为服务器:

// making TCP IPV4 socket
try self.listenSocket = Socket.create(family: .inet, type: .stream, proto: .tcp)
// start lisening port of 8888
try socket.listen(on: self.port)
// accept client connection when there is
let newSocket = try socket.acceptClientConnection()
// keep opening and reading data ....

iPhone作为客户端:

self.socket = try Socket.create(family: .inet)
try self.socket?.connect(to: ip, port: 8888)
try self.socket?.setReadTimeout(value: readWriteTimeOut)
try self.socket?.setWriteTimeout(value: readWriteTimeOut)
self.socket?.readBufferSize = Socket.SOCKET_MAXIMUM_SSL_READ_BUFFER_SIZE
  1. 客户端首次与服务器连接工作正常。
  2. 服务器收到数据后,客户端会自动关闭套接字。
  3. 客户端尝试使用上述相同代码再次连接服务器以发回数据。 然后显示错误!

我认为默认情况下,当服务器端使用socket.listen时,它SO_REUSEADDR设置为true

需要有关如何解决此问题的建议。谢谢!

只需要确保 while 循环socket.acceptClientConnection()一直打开......

最新更新