Q&A

  • 인디를 사용한 통신에서..?
인디 소켓을 사용해서 클라이언트들에서 신호가 오면 원하는 데이타를(약1000개정도) 서버에서 디비를 조회해서 클라이언트로 보냅니다. 그런데 서버에서 클라이언트로 데이타를 보내는 순간에 다른 클라이언트가 데이타를 달라고 할때 서버가 멈추지 않나요? 아니면 먼저 작업하는 일을 다 끝날때까지 기다렷다가 또 다른 작업을 하나요?
3  COMMENTS
  • Profile
    srookie 2006.04.27 23:23


    안녕하세요.
    인디소켓이라 하면 TIdTCPServer를 사용하시겠군요.
    TIdTCPServer의 경우, 각 Client Connection당 하나의 Thread가 생성되게 됩니다.
    따라서, 모든 일이 동시에 진행된다고 보시면됩니다. 단, 동기화를 위해서 동기화 객체를 사용했을 때를 제외하곤 말이죠.

    즐코하세요
  • Profile
    델사랑 2006.04.28 01:21
    그럼 동기화를 안하면 디비에 넣는 순간에 다른 클라이런트가 같은 디비에 데이터를 아잔하게 너널수 있다는거죠?


  • Profile
    srookie 2006.04.28 05:23
    안녕하세요.
    Database 관련 객체들을 어떤식으로 사용하는지 모르겠으나, 만약 한개의 Database 객체를 여러 Connection에서 사용하게 된다면 문제가 발생할 가능성이 높습니다.
    Delphi에서 제공하는 Database 관련 객체들은 Multithread에 안전하지 않거든요.
    위와같은 경우라면 반드시 동기화 처리를 해 주셔야 할 것입니다.
    그럼 즐프 하세요.