私はiosアプリケーションを実行しています。サーバーを起動し、着信接続をリッスンします。アプリケーションを実行しているデバイスがルーターの背後にある可能性があるため、ポートを転送する必要があります。DNSServiceNATPortMappingCreate を使用してポート フォワードを作成しようとしていますが、常にエラー コード -65540 が返されます。
DNSServiceRef *sdRef = NULL ;
void ( *DNSServiceNATPortMappingReply) (DNSServiceRef sdRef,
DNSServiceFlags flags,
uint32_t interfaceIndex,
DNSServiceErrorType errorCode,
uint32_t externalAddress,
DNSServiceProtocol protocol,
uint16_t internalPort,
uint16_t externalPort,
uint32_t ttl,
void *context );
DNSServiceNATPortMappingReply = &DNSServiceNATPortMappingCreate_callback ;
DNSServiceErrorType error = DNSServiceNATPortMappingCreate(sdRef,
0,
0,
kDNSServiceProtocol_TCP,
htons(2000),
htons(5000),
0,
DNSServiceNATPortMappingReply,
NULL
) ;
これがコールバックです
void DNSServiceNATPortMappingCreate_callback(
DNSServiceRef sdRef,
DNSServiceFlags flags,
uint32_t interfaceIndex,
DNSServiceErrorType errorCode,
uint32_t externalAddress,
DNSServiceProtocol protocol,
uint16_t internalPort,
uint16_t externalPort,
uint32_t ttl,
void *context )
{
printf("in callback\n") ;
}