Q&A

  • 소켓통신할 때, 전송은 어떻게 하나요?
안녕하세요.
맨날 DB 어플리케이션만 만들다가 소켓통신 갑자기 하려니 잘 모르겠네요.
컴퓨터통신 시간에 배운 개념은 다 기억나는데, 막상 코딩하려니 막막~^^
도움을 청합니다.

제가 하려는건 이렇습니다.
IdTCPClient 컴포넌트를 썼구요,
소켓통신으로 간단한 문자열 주고받기인데요, 전송방식은
시작문자(STX) + 길이(2바이트:256으로 나눈 몫(1byte) + 나머지(1byte) + 전송데이타 + 끝문자(ETX)


const
  STX       = $02;
  ETX       = $03;

...... (생략)

procedure TForm1.Button2Click(Sender: TObject);
var msg : string;
   Len1, Len2 : integer;
begin
with IdTCPClient1 do
begin
   msg := '안녕하세요hello';

   Len1 := length(msg_i) div 256;
   Len2 := length(msg_i) mod 256;

//  ........???????

end;
end;


가운데 빠진 코딩부분을 채워야 할까요?
간절하게 답변 기다리겠습니다.^^
1  COMMENTS
  • Profile
    박성수 2004.05.18 18:07
    TIdTCPConnection.Write  method가 있네요..
    procedure TForm1.Button2Click(Sender: TObject);
    var msg : string;
       Len1, Len2 : integer;
    begin
    with IdTCPClient1 do
    begin
       msg := '안녕하세요hello';

       Len1 := length(msg_i) div 256;
       Len2 := length(msg_i) mod 256;

       msg := msg + InttoStr(Len1) + InttoStr(Len2); //전송할문자열을 만들어서
       Write(msg);  //소켓에 문자열을 실어보낸다..

    end;
    end;

    테스트는 해보지 않아서 확실하다 곤 말씀못드리고.. 될거는 같네요^^