Q&A

  • ClientSocket를 Open한 직후 SendText
한 프로시져 안에서 소켓을 열고 전송하는 방법 좀....왕초보라 쉽게...



클라이언트 소켓에 IP와 PORT를 설정하고 Open(Active=True)한 직후

SendText(...)를 사용하면 문자가 안보내 져요...

델파이 데모에 Chat프로그램처럼 Ative=True하고나서...

폼을 모달로 띄운뒤 SendText(...)하면 정상적으로 전송이 되는군요.

그러나 아래 소스처럼 폼을 모달로 띄우지 않고 사용하고자 합니다.





CltSocket:= TClientSocket.Create(self);



CltSocket.Address := SERVER_1_IP;

CltSocket.Port := SERVER_PORT;

CltSocket.Active := True;

CltSocket.Socket.SendText('test 1');

CltSocket.Active := False;

// 이런식으로 리스트에 등록된 여러 IP가 있다면 루프를 돌면서

// 각각 문자열을 전송 합니다



CltSocket.Address := SERVER_2_IP;

CltSocket.Port := SERVER_PORT;

CltSocket.Active := True;

CltSocket.Socket.SendText('test 2');

CltSocket.Active := False;



CltSocket.Free;



고수님들의 답변/조언 부탁합니다.

1  COMMENTS
  • Profile
    LeBon 1999.07.27 05:27
    안양수 께서 말씀하시기를...

    > 한 프로시져 안에서 소켓을 열고 전송하는 방법 좀....왕초보라 쉽게...

    >

    > 클라이언트 소켓에 IP와 PORT를 설정하고 Open(Active=True)한 직후

    > SendText(...)를 사용하면 문자가 안보내 져요...

    > 델파이 데모에 Chat프로그램처럼 Ative=True하고나서...

    > 폼을 모달로 띄운뒤 SendText(...)하면 정상적으로 전송이 되는군요.

    > 그러나 아래 소스처럼 폼을 모달로 띄우지 않고 사용하고자 합니다.

    >

    >

    > CltSocket:= TClientSocket.Create(self);

    >

    > CltSocket.Address := SERVER_1_IP;

    > CltSocket.Port := SERVER_PORT;

    > CltSocket.Active := True;

    > CltSocket.Socket.SendText('test 1');

    > CltSocket.Active := False;

    > // 이런식으로 리스트에 등록된 여러 IP가 있다면 루프를 돌면서

    > // 각각 문자열을 전송 합니다

    >

    > CltSocket.Address := SERVER_2_IP;

    > CltSocket.Port := SERVER_PORT;

    > CltSocket.Active := True;

    > CltSocket.Socket.SendText('test 2');

    > CltSocket.Active := False;

    >

    > CltSocket.Free;

    >

    > 고수님들의 답변/조언 부탁합니다.

    SendText이전에서

    Application.ProcessMessages;

    를 넣으시기 바랍니다. 이유나 단점은.. 질문받지 않습니다.. -_-;