Q&A

  • [네트웍/통신]Center에 DB 접근
tcp/ip로 Center에 접속해서 거기 DB 읽어와야 할 일이 있거든요...

현재는 Internet에 있는 ClientSocket,ServerSocket 컴포넌트 쓰고 있구요...

ClientSocket에 어느 이벤트쯤에서 해줘야 하나요?

응..예를 들면 ClientSocket에서 server쪽으로 데이타 날리는 건 Clientsocket이 True된 직후가 아니라 Write이벤트가 일어난 이후부터 해야 되쟎아요..

그런 것처럼 어떤 이벤트 이후부터 이 작업을 해야되는지 알고 싶습니다...





1  COMMENTS
  • Profile
    승추니 2001.01.09 20:02
    나 wrote:

    > tcp/ip로 Center에 접속해서 거기 DB 읽어와야 할 일이 있거든요...

    > 현재는 Internet에 있는 ClientSocket,ServerSocket 컴포넌트 쓰고 있구요...

    > ClientSocket에 어느 이벤트쯤에서 해줘야 하나요?

    > 응..예를 들면 ClientSocket에서 server쪽으로 데이타 날리는 건 Clientsocket이 True된 직후가 아니라 Write이벤트가 일어난 이후부터 해야 되쟎아요..

    > 그런 것처럼 어떤 이벤트 이후부터 이 작업을 해야되는지 알고 싶습니다...

    >

    >

    ----------------------------------------------------------------



    DB를 읽는 방법이라면 여러가지가 있겠지만..



    그중 ClientSocket, ServerSocket을 사용하신다면...아마도 직접 SQL문을 사용하는걸



    꺼려하시는 모양인듯...(전 개인적으로 이걸 추천하는데여..^^"-



    why? 아주 편하니까..^o^")



    질문하신걸로 보아서 clientsocket, serversocket을 사용 둘간의 접속까지는 하셨져?



    그런다음 client에서 특정한(원하시는) 메세지를 server로 보내시구여..(ex: sendText)



    server에서는 OnClientRead에서 메세지를 받구 테이블이든 쿼리든 사용하여 결과셋



    만들구.. 다시 client로 결과셋 send하구 대기.. client에서는 onRead에서 읽어서 출력.



    다시 send( 대기상태 풀어줘야져..) 이렇게 하심 되는데....(헉! 말이 힘들다..)



    그럼 잠시.. 주절주절 소스를...



    클라이언트부분..



    procedure TForm1.ClientSocket1Read(Sender: TObject;

    Socket: TCustomWinSocket);

    begin

    ListBox1.Items.Add(Socket.ReceiveText);

    Clientsocket1.Socket.SendText('!'); <--- 전 '!'루 받았다는걸 보냈어여..

    마침표가 더 좋을려나??

    end;



    ------ -------- ------- ------- -------- -------

    그러탐 서버부분은!! 바로 이거...



    procedure TForm1.ServerSocket1ClientRead(Sender: TObject;

    Socket: TCustomWinSocket);

    var

    str: String;

    begin

    str:= socket.ReceiveText;

    if str='!' then begin

    fWait:= False;

    end

    else begin

    InterpreterCommand(str);

    end;

    end;



    procedure TForm1.InterpreterCommand(cmd: String);

    begin

    with Query1 do

    try

    Close;

    SQL.Clear;

    SQL.Add(cmd);

    Open;



    First;

    while not eof do begin

    while fWait do Application.ProcessMessages;



    ServerSocket1.Socket.Connections[0].SendText(원하시는 결과값);

    fWait:= True;

    Next;

    end;

    except

    Close;

    end;

    end;



    ---------------



    근데 아무리 쓰면서 생각해도 비추천..^^"



    그럼 즐푸하세여..