소켓 비동기 통신과 동기 통신의 차이점 정보
클라이언트 b 가 통신 전송을 수행한다고 가정합니다. 먼저 A 머신에 감청 스레드를 만들어야 한다. 포트를 수신하면 B 기계가 A 기계에 통신 요청을 보낼 수 있고 B 기계가 A 기계에 연결된 후. A 기계는 그의 감청 대기열에서 가져갈 수 있는 감청 대상이다. A 측에서 이 소켓 개체를 받으면 데이터를 받고 보낼 수 있습니다. 여기서 문제가 발생했다. B 측이 A 측을 요청할 때 요청이 성공하면 데이터를 보냅니다. 그러면
a 측에서 소켓 개체를 직접 가지고 그의 정보를 얻을 수 있다. 그러나 B 측에서 연결이 성공한 후 직접 정보를 보내지 않고 나중에 불확실한 시간 내에 전송된 정보입니다. 그러면 A 측은 이 정보를 얻을 수 없다. 일반적인 방법은 타이머를 사용하여 이 데이터 캐시 영역을 짧지 않게 스캔하는 것입니다. 이렇게 비효율적인 데이터가 있는지 확인해 보세요. 그럼 어떻게 이 문제를 해결할 수 있을까요? 우리의 비동기 전송을 사용했습니다. 비동기 전송의 원리는. A 측에서 이 소켓 객체를 얻은 후에는 직접 데이터를 받는 것이 아니라 콜백 함수를 설정합니다. 콜백 함수는 시스템에 의해 유지 관리됩니다. 그는 지정된 시간에 데이터 저장소를 자동으로 스캔합니다. 데이터가 있으면 지정된 바이트 배열에 데이터를 저장합니다. 사용자 스스로 신경 쓰지 않아도 된다.
그렇다면 동기식/비동기식 애플리케이션은 각각 어떤 상황에 적용됩니까? 사용자의 소켓 연결 데이터가 비교적 짧다면. 한 번의 접속으로 데이터를 직접 보내거나 클라이언트가 적으면 동기화를 사용합니다. 사용자의 소켓이 장시간 연결된 경우 비동기 방식을 사용합니다.