Q&A

  • 서버가 요구하는 data type 를 맞추어야 돼는데요...
안녕하세요!!

  indy client로 서버와 통신하는 프로그램을 제작중인데요

  서버에서 요구하는 datatype는

  int형 4 byte + Pchar형 20 byte 입니다!!!

첫번째 int형은 null + null + null + 0ox00 형태로 요구하구요
( int 형 0을 핵사로 포기하고 앞자리는 null로 채운 형태를 요구함)

두번째 Pchar형은 Pchar 형으로 채우고 남어지 부분은 오른쪽에 null 로
채워야 됩니다..

그래서 구현한 소스가 아래와 같은데 뭐가 잘 못되었는지 에러가 발생됩니다!!!

  (물론 datatype 가 잘못됬다는 내용의 에러입니다!!)


방법1
  var
    Thechar1 : arry [0..19] of char;
begin    
   StrPcopy(TheChar1,'0000123456');
   IndyClient1.WriteLn (#0#0#0chr($0) + Thechar1);
end;
---------------------------------  
방법2

  var
    Thechar1 : arry [0..3] of char;
    Thechar2 : arry [0..19] of char;
begin    
   StrPcopy(TheChar1,'0');
   StrPcopy(TheChar2,'0000123456');
   IndyClient1.WriteLn (TheChar1 + Thechar2);
end;

  
  
1  COMMENTS
  • Profile
    깨비 2002.03.26 20:25
    혹, 행여.. 방법 1과 2은 지금 하신것에서 따오신건지요.. 암튼.


        Thechar1 : arry [0..19] of char;    
      -> Thechar1 : array [0..19] of char;    

       일단은... arry -> array 로 바뀌어야 하구요 .. 음... 이실수는 아니시겠지엽.

    님의 프로그램을 아래와같이 옮겨봤습니다.
    memo1에 보이는 16진수값이 구하시려는게 맞는지. 확인 바랍니다.
    만약에 맞다면.. result 값을 보내세요..   IndyClient1.WriteLn (result);
    전 인디를 안써서.. 보내는게 저게 맞는지 모르겠네엽..

    procedure TForm1.Button1Click(Sender: TObject);
    var
       Thechar1 : array [0..19] of char;
       Result,s : String;
       i : integer;

    begin
       StrPcopy(TheChar1,'0000123456');
       result := #0#0#0+chr($0) + Thechar1;
       s:= '';
       for i:=1 to  length(result) do
       begin
            s := s+ format('%2x',[ord(result[i])])+' ';
       end;
       memo1.Lines.Add(s);
    end;