Получение ошибки "Код ошибки: -9989 (0x-2705), соединение отклонено" с использованием среды BlueSocket и соединения между Mac и IOS.
Вот логика:
Я рассматриваю 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
- клиент при первом подключении к серверу работает нормально.
- после того, как сервер получает данные, клиентская сторона автоматически закрывает сокет.
- клиент пытается подключиться к серверу снова, чтобы отправить данные обратно с помощьютот же код выше. Затем появляется сообщение об ошибке!
Я думаю, что по умолчанию, когда на стороне сервера используется socket.listen
, для SO_REUSEADDR
установлено значение true
Нужны предложения о том, как решить эту проблемувопрос. Спасибо!