1. 문서
이 문서는 SDK에서 일반적으로 사용되지 않는 일부 함수에 대한 기능 설명입니다. 이러한 함수는 특정 시나리오에서 프로젝트에 유용할 수 있습니다. 이 문서를 읽기 전에 sdk의 원리와 통합 방법을 더 명확하게 설명하는 다른 일반 함수에 대한 sdk 설명을 읽어보시기 바랍니다. 고급 함수에 대한 샘플 프로젝트도 만들었으니 '고급 함수 데모'에서 프로젝트를 확인해 보세요.
2. 포트 충돌 해결
수년간의 관찰과 통계 결과, 포트 충돌 문제는 개별 클라이언트 장치에서만 발생하며 발생 확률은 낮습니다. 그러나 이 문제를 완전히 해결하려면 고급 기능을 사용하여 이 문제를 완전히 해결하는 것이 좋습니다.
SDK는 사용자가 구성하는 "전달 규칙"을 기반으로 하므로 다음과 같이 구성할 수 있습니다.클라이언트 장치에서 적절한 포트를 엽니다.이렇게 하면 개별 클라이언트에서 포트 충돌이 발생할 확률이 매우 낮아집니다.포트 충돌에는 두 가지 유형이 있습니다.::
- 시나리오 1: 구성한 포트가 개별 클라이언트의 다른 애플리케이션에서 사용되고 있습니다.점유로 설정하면 사용자가 앱을 제대로 사용할 수 없게 됩니다;
- 두 번째 시나리오: 여러 개의 앱이 있지만 동일한 인스턴스를 사용하는 경우 사용자가 동일한 기기에서 동시에 여러 개의 앱을 여는 경우가 있는데, 사용자가 처음 여는 앱이 인스턴스의 모든 포트를 차지하고 두 번째 앱은 해당 포트를 열지 못한 채 열리는 경우입니다. PC에서는 두 번째 앱이 첫 번째 앱을 통해 SDK에 연결되므로 두 번째 앱이 열리면 정상적으로 작동하므로 문제가 되지 않습니다.하지만 모바일에서는 문제입니다.두 번째 앱이 첫 번째 앱을 통해 SDK에 연결되고 사용자가 두 번째 앱을 사용하는 동안 첫 번째 앱이 백그라운드로 잘리고 잠시 후 첫 번째 앱이 시스템에 의해 최대 절전 모드로 전환되어 두 번째 앱이 연결되지 않을 수 있기 때문에 처음에는 두 번째 앱이 여전히 정상입니다. 이 문제에 대한 해결책은 매우 간단합니다.코드 절차는 다음과 같습니다.::
충돌 포트를 자동으로 변경하기 위해 설정되며, 한 번만 호출하면 됩니다.
int ret = clinkStart(key);//실드 시작, 일부 시스템에서는 시작 사용 자세한 내용은 다른 문서 참조, 한 번만 호출하면 됩니다.
// 새 연결이 필요할 때 다음 코드 줄을 호출하여 새 포트를 가져옵니다.
int new_tcpPort = dunGetCurrentTCPPort("127.0.10.21", 600);//새 tcp 해당 포트를 가져옵니다.
// 다음으로 new_tcpPort를 사용하여 애플리케이션에 연결합니다.
3 페이지 sdk 고급 기능 매뉴얼
4페이지
//connect("127.0.10.21", new_tcpPort) 예: 이 의사 코드 줄입니다.