|
산보 님이 쓰신 글 :
: TServerSocket은 콤포넌트라 Owner를 TForm으로 지정해야 하는지요?
: 저같은 경우레는 서버 프로그램을 만들었는데,
: 서버가 Listen()하다가...
: 클라이언트로부터의 접속 요청이 있을때마다, 쓰레드를 생성해서
: 그 쓰레드가 클라이언트와 통신하게 할려 합니다.(즉 서버에서 Listen()만하는 소켓 하나와, 각 클라이언트와의 연결을 담당하는 쓰레드와 TServerSocket 세트가 여러개...)
:
: 그런데 쓰레드 생성시 TServerSocket을 생성해 쓸려 하는데 방법이 없을까요?(TServerSOcket형의 멤버 변수를 쓰레드 클래스에 생성할려 하는데...)
: 부탁 드립니다. 새해 복 많이 받으세요.
:
: p.s. C++ Builder에서 쓰레드가 리소스를 많이 잡아 먹나요?^^;;;
안녕하십니까?
한꼬맹이입니다.
서버소켓 컴포넌트는 클라이언트가 서버에 접속시
자동으로 쓰레드를 생성해서 관리해주는 기능이 있으므로 여러개 사용안하셔도 됩니다.
이런한 기능을 하기위해서 서버컴포넌트의 ServerTyp을 stThreadBlocking으로 설정해
주시고 Thread 는 TServerClientThread 를 상속받아야 하며, ClientExecute를 반드시
override 해야 합니다. 그리고 서버소켓의 OnGetThread 이벤트에서 쓰레드를 생성해
주시면 됩니다.
그리고 클라이언트와의 통신을 의해서 오버라이딩한 ClientExecute() 메쏘드에
TWinSocketStream으로 스트림을 생성시켜 Read(), Write()로 읽기 쓰기를 해주시면
됩니다.
그럼 참고하시길...
|