Q&A

  • 소켓과 쓰레드의 관계
보통 서버 소켓을 갖다가 쓰는데.. 서버소켓을 갖다 쓸때 쓰레드가 생성되는 부분은 어디죠? 클라이언트가 접속된 상황에서 소켓내부적으로 쓰레드가 실행되는 건가요?

접속된 클라이언트들에게 메세지를 보낼때 보통 socket.connection[m].sendtext 이런형식으로 보내잖아요.. 여기에선 각 연결인덱스값을 가지고 클라이언트에게 응답하는건데 이것과 쓰레드와의 관계를 좀 설명해주세요.

3  COMMENTS
  • Profile
    보리차 2000.12.01 11:17
    동기모드일 경우 TServerThread 던가??( 하여튼 이름 생각 안남. ) 그놈 상속받아서

    Excute 메소드에 코드 추가해준 담에 OnGetThread( 여기서 스레드 생성),OnThreadStart(놀구있는 스레드 리스트 가지구 있으니깐 필요하죠.) 기타등등의 이벤트 설정해서 사용하는거구요



    그거 안하구 동기 모드로 설정해 놓구, 스레드 따루 안만들어 주면....

    내부적으로 스레드생성해서 이벤트 기다리고욥, 그놈이 이벤트 핸들러를 호출하
  • Profile
    비즈코리아 2000.11.29 21:17
    [답변리 될수있을지..]

    보통 Thread를 통신용으로 사용할때는...

    서버측의 입장에서....클라이언트로부터 들어오는 data를 수신할때 사용하는것이

    통상적입니다..하나의 수신data를 받아서 처리하는 속도가 많이 걸리면...

    그 다음 수신data도 받아야하는데..계속 수신측 data는 들어오고,기존 수신된 data는 그 다음처리를 해줘야하고..하면....문제가 복잡해지지요. 그러다가

    수신측 버퍼의 용량을 초과하게되면...수신측 시스템이 죽던지...암튼 문제가 발생하죠. 그래서 수신된data를 처리하는 동안에도..계속해서 다음 수신data를 받을수있게

    하려면 Thread 를 사용해야 할것입니다..

    마치 놀이동산에 있는 둥근(이름이 모더라...)회전원통같은거지요...



    님께서 주신 송신부분은, 님께서 하신대로 하셔도 무방할듯합니다.



    답변이 된건지...

    그럼 이만.





    빙 wrote:

    > 보통 서버 소켓을 갖다가 쓰는데.. 서버소켓을 갖다 쓸때 쓰레드가 생성되는 부분은 어디죠? 클라이언트가 접속된 상황에서 소켓내부적으로 쓰레드가 실행되는 건가요?

    > 접속된 클라이언트들에게 메세지를 보낼때 보통 socket.connection[m].sendtext 이런형식으로 보내잖아요.. 여기에선 각 연결인덱스값을 가지고 클라이언트에게 응답하는건데 이것과 쓰레드와의 관계를 좀 설명해주세요.

  • Profile
    2000.11.29 22:58
    서버소켓에는 자체적으로 쓰레드를 가지고 있다고 들었습니다.

    님의 말씀대로 서버소켓이 메세지를 받고 거기에 응답하기 위해서 쓰레드를 쓰지 않고 응답한다면 틀림없이 문제가 발생할것입니다.

    그런데 쓰레드가 쓰이는 서버소켓인데 어디에서 어떻게 쓰이는지 알고 싶거든요.

    인덱스를 사용해서 보내는건 쓰레드를 쓰는것과 조금 차이가 있는 것같아서요.