Проблема с TCP-соединением при использовании BlueSocket Framework на IOS - PullRequest
0 голосов
/ 15 октября 2019

Получение ошибки "Код ошибки: -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
  1. клиент при первом подключении к серверу работает нормально.
  2. после того, как сервер получает данные, клиентская сторона автоматически закрывает сокет.
  3. клиент пытается подключиться к серверу снова, чтобы отправить данные обратно с помощьютот же код выше. Затем появляется сообщение об ошибке!

Я думаю, что по умолчанию, когда на стороне сервера используется socket.listen, для SO_REUSEADDR установлено значение true

Нужны предложения о том, как решить эту проблемувопрос. Спасибо!

1 Ответ

0 голосов
/ 16 октября 2019

Просто нужно убедиться, что цикл для socket.acceptClientConnection() все время открывается ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...