회원님 안녕하세요!
인디로 서버 프로그램을 작성했는데, 클라이언트가 복수개 일때 동시에 날라오는 메세지를 처리하지 못해서 고심끝에 쓰레드를 써볼려고 합니다. 제가 UDP 프로토콜로 통신하는바람에 관련함수를 찾아 봤는데, TIdUDPListenerThread 라는 함수가 있더군요, 이 함수는 어떻게 사용하는것인가요?
헬프를 읽어봤는데, 'UDPRead 이용해서 버퍼에 데이터가 사용가능할때 서버에게 알려준다'라고만 되어있어서...잘 이해를 못하고 있습니다. 제가 사용하려는 목적에 맞는 함수 인가요? 조언좀 부탁드립니다.
그럼 즐거운 하루 되세요.
==> TIdUDPServer를 사용하시는거 맞죠? 직접 구현하실 필요는 없습니다. 이미 컴포넌트로 만들어져있죠.. TIdUDPServer.OnUDPRead() 이벤트를 사용하시면 됩니다. 그럼 서버에 날라오는 데이터들을 잡아서 처리하실 수 있죠. 이 이벤트에선.. 데이터를 받았을때의 처리코드만 넣어주시면됩니다..
그 안에서 Thread관련 코드가 필요없죠. 이미 님이 말씀하신 TIdUDPListenerThread 에서 Synchronize되서 날라오는 이벤트입니다. 만약 10개의 UDP 메시지가 왔다면 이 이벤트가 10번 날라오죠.. ^^;
TIdTCPServer와는 다르게 UDP의 특성상 OnExecute() 이벤트는 없지만, 사용자 입장에서 같다고 보여지네요 ^^''
ps. 성공하시길.. ㅡOㅡ;