채팅서버에 같은이름이 접속못하게 하는걸 만들어보고 있는데요...
글쓴이: ch0nn0m / 작성시간: 수, 2009/08/26 - 4:00오후
서버에서 연결리스트로 들어온 클라이언트의 이름을 저장하고....
만약 그 이름이 존재한다면...클라이언트 소스에서는 이미 존재한다는 메시지를 받고
소켓을닫고 exit(0)으로 마무리 하였습니다...
근데 문제는 서버인데요...
만약에 이미 같은이름이 존재하면 소켓을 닫게하였습니다...exit는 하지 않았구요...
그런데...한번 접속에 실패를 하고난 클라이언트가 다시 다른이름으로 접속하여 메시지를 보내게 되면...
(서버에서는 클라이언트의 메시지를 받게되면 모든 클라이언트에게 다시 전송하게끔 되어있습니다)
접속에 실패한 만큼...5번실패했었다고 가정하면...매번 메시지를 보낼때마다 자신에게는 다시 5번의 메시지가 출력됩니다...다른 클라이언트는 괜찮았구요...
왜 이렇게되는건가요??
소스코드가 많이 지저분하여...말로 설명을 드렸는데...
이해가 가셨을지요..^^;
Forums:
댓글 달기