Q&A

  • 원격지의 html을 가져오기위해 ClientSocket을 이용~~~
원격지의 html을 가져오기 위해 ClientSocket이용해서 예제보면서 했는데

컴퓨가 반응이 없읍니다.

아마두 제방법이 틀린것 같은데..

다른 컴포넌트 쓰면 쉽게 되긴 되는데

소켓을 이용하고 싶습니다.

보내는 방법이 잘몬된것인가요??

경험있으신분들의 조언 부탁합니다.

감사합니다.





procedure TForm1.Button1Click(Sender: TObject);

begin

if ClientSocket1.Active = true then ClientSocket1.Active := false;

ClientSocket1.Host := 'www.delphi.co.kr';

ClientSocket1.Address := '210.108.48.7';

ClientSocket1.ClientType := ctNonBlocking;

ClientSocket1.Port := 80;

ClientSocket1.Open;

ClientSocket1.Socket.SendText('get /index.htm http/1.1');

end;



procedure TForm1.ClientSocket1Read(Sender: TObject;

Socket: TCustomWinSocket);

begin

showmessage(Socket.ReceiveText);

end;

1  COMMENTS
  • Profile
    이경문 2000.06.26 22:07
    ClientSocket1.Open Method 뒤에

    Send 및 Receive 류의 함수를 쓸 수 없습니다. 왜? 비동기방식이기 때문에.

    그러므로 OnConnect Event에서(Connect가 된 상태임을 확인할 수 있는 경우)

    SendText를 하셔야 됩니다.

    그리고 웹서버에서 #13#10#13#10을 넣어줘야

    비로소 해당하는 내용을 보내게 되므로(html header와 body의 구분)

    #13#10#13#10을 뒤에 첨가시켜 줘야 합니다.



    procedure TForm1.ClientSocket1Connect(Sender: TObject;

    Socket: TCustomWinSocket);

    begin

    ClientSocket1.Socket.SendText('get /index.htm http/1.1' + #13#10#13#10);

    end;



    초보 wrote:

    > 원격지의 html을 가져오기 위해 ClientSocket이용해서 예제보면서 했는데

    > 컴퓨가 반응이 없읍니다.

    > 아마두 제방법이 틀린것 같은데..

    > 다른 컴포넌트 쓰면 쉽게 되긴 되는데

    > 소켓을 이용하고 싶습니다.

    > 보내는 방법이 잘몬된것인가요??

    > 경험있으신분들의 조언 부탁합니다.

    > 감사합니다.

    >

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > if ClientSocket1.Active = true then ClientSocket1.Active := false;

    > ClientSocket1.Host := 'www.delphi.co.kr';

    > ClientSocket1.Address := '210.108.48.7';

    > ClientSocket1.ClientType := ctNonBlocking;

    > ClientSocket1.Port := 80;

    > ClientSocket1.Open;

    > ClientSocket1.Socket.SendText('get /index.htm http/1.1');

    > end;

    >

    > procedure TForm1.ClientSocket1Read(Sender: TObject;

    > Socket: TCustomWinSocket);

    > begin

    > showmessage(Socket.ReceiveText);

    > end;