клиентское приложение, использующее nw_connection_receive, прекрасно работает с проводной сетью

Но не может получить какие-либо данные с помощью Wi-Fi (соединение tls), в то время как клиент, использующий сокет BSD, не имеет этой проблемы, моя конфигурация tcp и tls:

      auto config_tcp = ^(nw_protocol_options_t tcp_op) {
        nw_tcp_options_set_connection_timeout(tcp_op, connection_timeout); //set timeout to 5 seconds
        nw_tcp_options_set_enable_keepalive(tcp_op, true); //keep_live
        nw_tcp_options_set_no_delay(tcp_op, true); //enable no delay
        nw_tcp_options_set_enable_fast_open(tcp_op, false);
        
    };
    
    auto config_tls = ^(nw_protocol_options_t tls_options) {
        auto sec_options = nw_tls_copy_sec_protocol_options(tls_options);
        sec_protocol_options_set_min_tls_protocol_version(sec_options, tls_protocol_version_TLSv12);
        sec_protocol_options_set_max_tls_protocol_version(sec_options, tls_protocol_version_TLSv12);
        sec_protocol_options_append_tls_ciphersuite_group(sec_options, tls_ciphersuite_group_default);
        sec_protocol_options_set_peer_authentication_required(sec_options, false);
        nw_release(sec_options);
    };

Код для получения

      static void handleIncomingVideo( void* caller, nw_connection_t conn = nullptr )
{
    auto pCaller = reinterpret_cast< NetworkTalk* >( caller );
    
    if ( conn == nullptr )
    {
        conn = pCaller->getConnection( Video );
        if ( conn == nullptr )
        {
            return;
        }
    }
    
    nw_connection_receive(
            conn,
            1, std::numeric_limits<uint32_t>::max(),
            ^( dispatch_data_t      content,
               nw_content_context_t context,
               bool                 is_complete,
               nw_error_t           receive_error )
    {
         
        int dSize = (content == nullptr) ? 0 : (int)dispatch_data_get_size(content);
        syslog(LOG_INFO, "NT(%s)L:%d nw_connection_receive : video data! content:len=%d", __FUNCTION__, __LINE__, dSize);
        
         ....
    }

при отключении приведенный выше журнал клиента показывает полученный nullptr

Есть идеи?*, нужна ли специальная настройка для Wi-Fi? Кстати, это сетчатый Wi-Fi.

0 ответов

Другие вопросы по тегам