|
안녕하세요.
또 귀찮게 해드리네요.
서버 소켓 접속시에 발생하는 에러는 잘 잡아내었는데.. 다른 골치거리가 생겼습니다.
가령 서버에 여러대의 클라이언트가 접속되었을 때의 경우에 서버에서 원하는 클라이언트로 메시지를 보낼때에는
ServerSocket1->Socket->Connections[client_number]->SendText(str);
식으로 보내게 되는데, 클라이언트가 순서대로 접속되어 접속이 끊어지지 않고 계속 유지되면 별 문제가 없을 것이나, 여러가지 이유로 접속이 끊길 경우에는 좀 골치아픈 문제가 생기더군요.
제가 테스트를 해본 결과 상기 client_number은 0부터 1씩 증가하면서 서버에 접속된 시간순서대로 번호가 할당이 되며, 중간에 한 클라이언트의 접속이 끊어지면 이 클라이언트 이후에 접속된 클라이언트의 client_number는 순서대로 1씩 감소하게 된다는 사실을 알게되었습니다.
물론 클라이언트가 서버소켓에 접속되면 순서대로 client_number를 할당하여 리스트로 보관하였다가 소켓접속이 끊어지면 이후에 접속된 클라이언트의 client_number를 1씩 줄여주면 되지만 왠지 넘 무식한 방법이 아닌가 싶어서 이렇게 여쭤봅니다.
현 클라이언트에 할당된 client_number를 알아낼 다른 방법이 없는지요???
|