|
흑태자 님이 쓰신 글 :
: 여전히 빌더 예제 프로그램인 chat과 강좌에 있는 소켓 프로그래밍을 붙잡고 씨름을 하고 있습니다 ^^;;
:
: TServerSocket을 이용해서 서버를 운영하는 프로그램을 만들때 OnClientRead나 OnAccept 이벤트 등이 발생할때
: chat 예제 프로그램에서는 Socket->RemoteAddress 나 Socket->ReceiveText 등으로 사용을 하던데요
: 전 이게 폼을 닫을때 Form1->Close() 이것을 그냥 Close()라고 표현하는것과 같은 표현인줄 알았습니다
: 그래서 Socket->ReceiveText 이것도 ServerSocket1->Socket->ReceiveText 이것과 동일한 것인줄 알고 있었죠
:
: 그런데 저런 이벤트가 발생할때 파라메터로 넘어오는데에 TCustomWinSocket *Socket 이라는.. 이벤트가 발생한
: 소켓의 포인터가 넘어오더군요.
: 그렇다면 서버에 접속한 클라이언트가 여럿일 경우 이벤트가 발생했을때 어떤 클라이언트인지 알아볼수 있는 요소가
: Socket 이라는 것을 알았습니다.
: 그러면 ServerSocket1->Socket 에서 사용하는 이 Socket는 어떤 소켓입니까? 동일한게 아닌가요?
:
: 그리고 연장선에 있는 질문인데 ServerSocket1->Close() 하고 ServerSocket1->Socket->Close() 이것도 다른 의미겠죠?
: 어떻게 다른지 궁금합니다.
안녕하세요 만해입니다.
ㅋㅋ
제가 기억 하는 바로는 TServerSocket은 하나의 시작 지점으로 클라이언트의 접속을 기다리는 대기점이고요
TServerSocekt->Socekt은 클라이언트가 접속 했을때
서버에서 관리를 위해 각각 개별 클라이언트별 소켓을 생성 할당 하여 데이타 전송이나 그외 다른 작업을
수행합니다. 그러니깐 클라이언트와 직접적인 통신을 하는 소켓이죠
강좌란에 TServerSocket, TClientSocket 강좌가 있으니 참고 하세요~
PS. 나중에 퇴근후에 보충해서 다시 올릴께요~
|