아래 게시판에 TCP/IP 서버 클라이언트 전송 예제를 구한다는 글을
올렸습니다
아무래도 문제되는 소스를 보여주는게 빠를것 같아 소스를
올립니다
서버에서는 계속해서 1초간격으로 데이타를
10000번을 보내는데
클라이언트에서는 한번만 받고 끝납니다
disconnect를 없애도 마찬가지입니다
제가 원하는 것은 서버에서 계속해서 클라이언트로
문자열 데이타를 전송하면
클라이언트에서 받는 즉시 자동적으로
데이타를 화면에 나타나게 하는 것입니다
문제가 어디에 있을까요?
서버쪽 소스
procedure TfrmServer.FormCreate(Sender: TObject);
begin
TCPServer.Active := True;
end;
procedure TfrmServer.TCPServerExecute(AThread: TIdPeerThread);
var
File1,Buf1:string;
F1:TextFile;
i:integer;
begin
with AThread.Connection do
begin
i:=0;
while (1>0) do begin
inc(i);
WriteLn(inttostr(i));
memo1.Lines.Add(inttostr(i));
if i>10000 then break;
sleep(1000);
end;
Disconnect;
end;
end;
클라이언트쪽 소스
procedure TForm2.btnStartClick(Sender: TObject);
begin
with TCPClient do
begin
Connect;
// try
lstMain.Items.Add(ReadLn);
// finally
// Disconnect;
// end;
end;
end;
서버에서는 10000번을 보내고 접속을 끊는데...
클라이언트쪽에서는 버튼눌를때 접속하고 단 한번만 받게 코딩되어 있네요...
서버쪽처럼 for문을 돌려서 ReadLn을 10000번을 호출해야 10000번을 받죠.
쓰레드를 이용하세요. 그래서 이 쓰레드에서 10000을 받을때까지 리스닝하고 있으면 됩니다.
^^ 항상 즐코하세요...