외부 하드웨어 장치와 소켓을 통해 오디오 데이터를 교환하는 Delphi 6 응용 프로그램이 있습니다. 하드웨어 장치에는 내부 버퍼링 처리 속도가 느려지는 경우가 있는데, 특히 장시간 사용하면 오디오 스트림에 지장을 초래할 수 있습니다. 이것은 오디오 데이터가 종종 사람들 간의 양방향 실시간 대화의 기초가되기 때문에 중요한 문제입니다. 그러나 연결을 끊고 다시 설정하면 문제가 해결됩니다.Indy 9 소켓 연결이 실제로 끊어 졌는지 확인하는 방법이 있습니까 (Delphi 6 응용 프로그램)?
나는 Indy와 소켓을 연결/연결 해제하는 방법을 알고있다. 매우 쉽다. 내 관심사는 너무 빨리 다시 연결하려고하면 Indy 나 Windows 소켓 계층 자체에서 일부 연결 캐싱 메커니즘 자체가 내 연결을 끊을 수 있다는 것입니다. 외부 하드웨어 장치와의 소켓 연결이 실제로 끊어지는 것을 확인하는 방법이 있습니까? 더 나은 질문은, 내 재 연결 시도가 오래된 소켓 연결을 재사용하기보다는 새로운 새로운 소켓 (핸들?)을 생성하도록하는 방법이 있습니까?
새로운 하드웨어 장치는 내부 연결을 플러시하고 (장치의 소스 코드가 없기 때문에) 내 생각에 새 것으로 시작하기 때문에 새로운 연결이 생성 된 경우에만 "다시 설정"됩니다.
다시 연결하는 것에 대해 걱정할 필요가 없습니다. 이전 소켓 핸들/연결이 "내 뒤에서"(또는 실제로 처음부터 부러지지 않았 음) 다시 사용되므로 걱정할 필요가 없습니다. 따라서 외부 연결을 끊으려고하는 하드웨어 장치가 연결 끊기 이벤트를 보지 못합니다. 외부 장치가 연결 끊기를 확인하고 따라서 이전 연결과 관련된 이전 데이터 구조를 삭제합니다. 이게 내가 걱정할 필요가있는거야? –
이전 연결은 다시 사용되지 않습니다. –