제가 잘 몰라서 그러는데요...
서버와 클라이언트간에 데이타를 주고 받는 프로그램을 작성할려고
자료를 찾다보니 소켓프로그램이 있더군요.
근데 컴포넌트를 보니
Internet팔레트에 ClientSocket / ServerSocket,TcpClient/TcpServer가 있고
Indy 팔레크에 idTCPClient/idTcpServer 이라는 커포넌트가 있던군요
어떤 컴포넌는 사용하여 개발을 해야 가장 효율적인지?
두개의 차이점을 좀 설명해 주세요...
또 어떤경우에 어떤 컴포넌트를 사용해야 하는지도요?
고수님의 답변을 부탁드립니다....
델파이의 TCP 기본 소켓은 비동기식인 TcpClient / TcpServer 소켓과 Indy 에서 사용하는 동기식 idTCPClient/idTcpServer 으로 되어 있습니다.
물론 버젼이 높아 지면서 델파이 기본 TCP 소켓이 비동기식과 동기식을 설정할 수 있게 되었죠.
여기서 말하는 비동기식과 동기식은 웹을 찾아보시면 쉽게 이해하실 겁니다.
비동기식은 M$ 에서 윈도우 소켓으로 만들었다고 하는 군요. 이것은 Client 나 Server 쪽에서 데이터를 요구할 경우 반대쪽의 답변을 기다리지 않고 다음 요구를 할수 있습니다. 다시 말해 데이터를 요구하고 답변이 있던지 말던지 난 보낼테니 넌 받아라를 식이죠.
동기식은 보통 Unix나 Linux (물론 Indy 도 포함됩니다.)에서 사용한다고 어깨넘어(?) 들었습니다.
비동기식과는 반대로 상대방의 요구에 답변을 요구하고 답변이 올때까지 Timeout 시간동안 기다기는 것입니다. 그 시간 까지 답변이 안오면 (물론 답변이 필요없는 요구도 있겠죠) 다시 요구하면 됩니다.
각기 장단점은 있기 마련입니다.
이것을 적절히 이용하여 각종 소켓 관련프로그램 들을 만드는 것은 프로그램하는 사람들의 몫이 겠죠.
물으신 내용의 답이 되었는지 모르겠습니다.
그럼 즐프 되세요.