TsgcSTUNServer이벤트 › OnSTUNRequestSuccess

OnSTUNRequestSuccess 이벤트

핸들러가 응답을 검사하거나 거부할 수 있도록 서버가 성공적인 Binding Response를 보내기 전에 발생합니다.

구문

property OnSTUNRequestSuccess: TsgcSTUNRequestSuccessEvent;
// TsgcSTUNRequestSuccessEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest, aResponse: TsgcSTUN_Message; var Accept: Boolean) of object

기본값

설명

서버가 Binding Request를 성공적으로 처리하고 클라이언트의 공개(매핑된) 주소를 담은 응답을 생성한 후, 데이터그램이 전송되기 전에 발생합니다. aRequest는 원본 STUN 메시지(transaction id, attributes, source endpoint)를 노출하고 aResponse는 전송될 Binding Response를 노출합니다. 둘 다 로깅 또는 감사를 위해 검사할 수 있습니다. Accept := False로 설정하면 응답을 자동으로 폐기합니다. 예를 들어 사용자 지정 속도 제한 또는 클라이언트별 블랙리스트를 구현할 수 있습니다. 핸들러는 NotifyEvents가 리디렉션하지 않는 한 리스너 스레드에서 실행됩니다.

예제

procedure TForm1.OnSTUNRequestSuccess(Sender: TObject;
  const aSocket: TsgcSocketConnection; const aRequest, aResponse: TsgcSTUN_Message;
  var Accept: Boolean);
begin
  Memo1.Lines.Add('Binding OK from ' + aSocket.PeerIP + ':' + IntToStr(aSocket.PeerPort));
  Accept := True;
end;

이벤트로 돌아가기