Q&A

  • 소켓 통신에 대하여?
제가 잘 몰라서 그러는데요...
서버와 클라이언트간에 데이타를 주고 받는 프로그램을 작성할려고
자료를 찾다보니 소켓프로그램이 있더군요.
근데 컴포넌트를 보니
Internet팔레트에 ClientSocket / ServerSocket,TcpClient/TcpServer가 있고
Indy 팔레크에 idTCPClient/idTcpServer 이라는 커포넌트가 있던군요
어떤 컴포넌는 사용하여 개발을 해야 가장 효율적인지?
두개의 차이점을 좀 설명해 주세요...
또 어떤경우에 어떤 컴포넌트를 사용해야 하는지도요?
고수님의 답변을 부탁드립니다....
3  COMMENTS
  • Profile
    이승민 2005.06.08 18:31
    델파이의 몇 버젼을 사용하신지 몰라서 그냥 제가 알고 있는 기초적인 내용만 말씀드리겠습니다.
    델파이의 TCP 기본 소켓은 비동기식인 TcpClient / TcpServer  소켓과 Indy 에서 사용하는 동기식 idTCPClient/idTcpServer 으로 되어 있습니다.
    물론 버젼이 높아 지면서 델파이 기본 TCP 소켓이 비동기식과 동기식을 설정할 수 있게 되었죠.
    여기서 말하는 비동기식과 동기식은 웹을 찾아보시면 쉽게 이해하실 겁니다.
    비동기식은 M$ 에서 윈도우 소켓으로 만들었다고 하는 군요. 이것은 Client 나 Server 쪽에서 데이터를 요구할 경우 반대쪽의 답변을 기다리지 않고 다음 요구를 할수 있습니다. 다시 말해 데이터를 요구하고 답변이 있던지 말던지 난 보낼테니 넌 받아라를 식이죠.

    동기식은 보통 Unix나 Linux (물론 Indy 도 포함됩니다.)에서 사용한다고 어깨넘어(?) 들었습니다.
    비동기식과는 반대로 상대방의 요구에 답변을 요구하고 답변이 올때까지 Timeout 시간동안 기다기는 것입니다. 그 시간 까지 답변이 안오면 (물론 답변이 필요없는 요구도 있겠죠) 다시 요구하면 됩니다.

    각기 장단점은 있기 마련입니다.
    이것을 적절히 이용하여 각종 소켓 관련프로그램 들을 만드는 것은 프로그램하는 사람들의 몫이 겠죠.
    물으신 내용의 답이 되었는지 모르겠습니다.
    그럼 즐프 되세요.

  • Profile
    주웰 2005.06.08 19:01
    절대 태클아닙니다 ^^;; 오해 없으시길...
    이승민님께서 설명하신것 중에 동기식은 Linux, Unix 에서
    보통 사용 하신다고 하셨는데 정확한 답변은 아닌듯 해서
    말씀드립니다.

    일반적으로 비동기식이나 동기식은 OS따라 사용하는것은
    아니고요. 전송되는 데이타 종류에 따라 달라집니다.

    중요한 데이타는 분명 저쪽에서 답변이 있어야 되는 동기식으로
    사용 해야 하고요.
    별로 중요하지 않은 음성이나 동영상 같은 채팅 있죠
    그런건 보통 비동기식으로 사용합니다.

    예를들어 중요치 않은 음성이나 동영상같은 것을 동기식으로
    사용한다면 서버에 엄청난 부하가 걸릴것으로 보입니다.
  • Profile
    홍미자 2005.06.09 00:42
    ..
    • 도끼로이마까
      2005.06.10 20:58
      질문의 의도가,,,C함수를 델파이로 고치는건가여,, 아니면,,C함수가 dll형태로 되어있는데,,이것을 델파...
    • nilriri™
      2005.06.10 07:20
      다를게 없는데...왜그런지 모르겠네요..ㅡㅡ; ADO인가요? BDE인가요?
    • 크로이첼
      2005.06.11 02:35
      역시 안대니 별의 수를 다 동원하네요. 걍 프로시져에서 나오는 결과값을 임시테이블만들어서 거기다 값 ...
    • 백승석
    • 2005.06.09 20:32
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 도끼로이마까
      2005.06.10 21:07
      Label이나 ProgressBar에 프로퍼티를 설정하신후, Repaint를 호출해주시면 됩니다.. Repaint는 WinCont...
    • 송 시중
      2005.06.09 22:35
      작업을 쓰레드화 시켜서 우선순위를 낮추거나, 화면과 동기화 한다던지 루프안에 Form.ProcessMessage...
    • 남충희
      2005.06.12 05:17
      다른 방법도 있겠지만 FTP의 경우 WinINet의 콜백함수에서 ProcessBar를 나타내는것이 일반적입니다. 그리...
    • 전상현
    • 2005.06.09 16:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2005.06.09 18:19
      Help 에 이렇게 나와 있네요. Note:        Dotted or dash...
    • 송 시중
    • 2005.06.09 09:24
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 천희택
      2005.07.02 09:02
      저도 초보라 도움이 될지 모르겠습니다.. 4가지 방법이 있는데 CriticalSection, Mutex, Semaphore, ev...
    • 도끼로이마까
      2005.06.10 21:11
      님께서 말씀하시는 synchronize는 님구현하려는 내용과 전혀 상관없습니다.. 델파이 Thread의 synchroni...
    • 허학송
    • 2005.06.09 05:59
    • 2 COMMENTS
    • /
    • 0 LIKES
    • nilriri™
      2005.06.09 09:27
      (grid.cells[1,r] <> '  ')  이게 정확히 원하는 결과를 리턴하나요? Trim()...
    • 허학송
      2005.06.09 19:50
      감사합니다. 역시 제가 초보긴 초보인가 보군요. 이런 방법을 생각 못하다니. 많이 배우고 있습니다.
    • nilriri™
      2005.06.09 22:22
      OnCalcFields 이벤트를 잘못 이해하신듯 합니다. filter를 왜 해주시는지? 그리고..filter string을 ...
    • 크로이첼
      2005.06.09 23:33
      답변 감사합니다. 제가 그냥 어제 원하는 결과값을 얻는 프로시져로 만들어 버렸네요 ^^; 급하다 보니 다...
    • 장태원
    • 2005.06.08 22:35
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 민스맘
      2005.06.09 00:53
      우선 Query 에서 Row를 제한해서 가져오는 방법은요 oracle : select * from a_Table where rownu...
    • 황성욱
      2005.06.09 02:47
      DATA ACCESS 쪽에 ClientDataSet이라는 콤포넌트가 있습니다. 이걸 이용하시면 가능 한데.. MIDAS나 data...
    • 오승섭
      2005.06.10 19:09
    • 호야
    • 2005.06.08 20:14
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 성더기
      2005.06.09 01:26
      델파이 시디를 가지고 계신다면 시디안에 인스톨쉴드 Express라고 델파이용으로 번들된 버전이 있습니다 ...
    • 유응철
      2005.06.09 02:40
      델파이에 번들로 제공된 것이 어렵다면, 한글설명이 잘 되어 있는 installshield Factory 2.70 인가가 있습...
    • 임정미
      2005.06.09 07:10
    • 이승민
      2005.06.08 18:16
      음 rs232c 를 사용할때 여러가지 방법들을 사용하는데 그중 제가 쓰는 방법은 comport 당 하나의 Timer 나 ...
    • 프란시스
      2005.06.08 22:49
      쓰레드를 하나  발생(create) 시켜서 지속적으로 read하도록 하는 방법은 어떤것인지요? 부탁드...
    • 한만교
      2005.06.09 03:14
      제가 하는 일반적인 그러나 정석(반드시 정석이라 할 순 없지만..ㅎㅎ)이라 할수 있는 방법입니다.. 쓰...
    • 프란시스
      2005.06.09 22:53
      전 일단 급해서 그냥 thread를 생성해서 바로 free시키는 방법으로 그냥 진행했습니다. 별문제없이 잘 처리...
    • 도끼로이마까
      2005.06.09 04:38
      어떤 크기를 말씀하시는건지,,, 자세하게 질문해주세여,,
    • 최용일
      2005.06.08 06:49
      안녕하세요. 최용일입니다. 화면이 바뀔때마다 그 화면에 대한 정보를 순차적으로 기록해놓으세요. 그럼...
    • 델초보
      2005.06.08 23:15
      드디어 답변이 ^^;; 답변 감사드리고요. 저도 그런 생각까지는 했는데 지금 만드는 프로그램이 장비와...
    • 최용일
      2005.06.08 23:52
      안녕하세요. 최용일입니다. 데이터를 뿌려주는 화면이라면... 화면에 대한 정보는 그 데이터들이 되겠죠...
    • 델초보
      2005.06.09 02:10
      답변감사합니다. 지식이 짧아서 하나하나 진행하기가 매우 힘드내요. 수고하세요...
    • 한상민
      2005.12.22 00:55
      다들 넘 힘들게 생각하는거 같아서 6개월 지난 후 답변 올립니다. procedure TForm1.WebBrowser1C...
    • 홍미자
    • 2005.06.08 02:36
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이승민
      2005.06.08 18:31
      델파이의 몇 버젼을 사용하신지 몰라서 그냥 제가 알고 있는 기초적인 내용만 말씀드리겠습니다. 델파이의...
    • 주웰
      2005.06.08 19:01
      절대 태클아닙니다 ^^;; 오해 없으시길... 이승민님께서 설명하신것 중에 동기식은 Linux, Unix 에서 보...
    • 홍미자
      2005.06.09 00:42
      ..
    • 정찬희
      2005.06.08 04:48
      위로 이동하는 코드에서   <!--CodeS--> if ( ListBox1.ItemIndex <> 0) then &l...
    • 오경태
    • 2005.06.08 01:43
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 천희택
      2005.06.08 17:48
      리눅스에 msyql을 설치하셨으면... 우선 DB를 만드셔야 합니다. 그리고 테이블을 만드시고 .... 그리...
    • 오경태
      2005.06.08 19:16
      감사합니다..제가 이곳싸이트에 올린 질문중에 처음으로 친절히 답해주셨습니다... 또 하룻밤새워..db ...
    • 박정훈
      2005.06.09 19:17
      강의실에 가면 MySQL+Zeos 연동 강좌가 올라가 있답니다.. 저도 맛난거 사주시나요??? 푸흐흐... 농담이었...
    • 호야
    • 2005.06.08 01:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.06.08 18:58
      안녕하세요. 최용일입니다. 델파이 자체적인 기능엔 없습니다. GExpert라고 하는 Third-party Add-on...
    • LDS
      2005.06.08 01:54
      그냥 참고 삼아 232c통신의 경험을.... 232c에 물려 있는게 " PDA "라고 가정 할게요 PDA에서는 ...
    • 프란시스
      2005.06.08 02:58
      네 감사합니다 근데 프로토콜은 괜찮은데요. ㅎㅎ 백그라운딩 프로새서로 하려구요 그냥 threed하...