[완료] Select() 함수 이용해서 채팅서버를 만들려고 합니다.
글쓴이: rCan / 작성시간: 금, 2007/11/02 - 1:56오후
리눅스 gcc사용하고있습니다..
서버에서 c와 q입력을 통해
c는 채팅참가자인원 x명 있습니다.라고 출력하고
q는 채팅참가자인원이 0명일 경우 서버를종료하고
그렇지 않을 경우에는 종료하지 않게 만들려고 합니다.
생각하기에 서버쪽에서 입력할때 처리를 못해서 그런것 같습니다.
어느것이 틀렸는지 어떻게 처리해야되는지 도움을 부탁드리겠습니다.
서버는 select사용했습니다.
클라이언트는 fork공부할때 만들어둔거 그대로 사용했습니다.
File attachments:
첨부 | 파일 크기 |
---|---|
chating.zip | 2.22 KB |
Forums:
select() 함수의 리턴값을 정확히 체크 안하시네요.
select() 함수는 리턴값이 3가지로 나뉩니다.
-1 : 에러발생
0 : 타임아웃발생해서 리턴한경우
0 보다 큰수 : 변화가 감지된 디스크립터의 갯수.
프로그램에서는 처음 서버띄우면 바로 select() 지나서 85 라인에서 입력을 기다리더군요.( 0번 디스크립터에 대해서 )
현재 상태는 타임아웃임으로 다시 select() 하러 가야 로직상 맞을거 같습니다. 일단 여기 수정한후 계속해보시죠...
고맙습니다^^
어느정도 해결됬습니다.
c언어 공부하는데 ^^;; 이거 너무 어렵네요;;
겨우 이제 키입력하는것 끝냈네요 T_T 이제 남은건 접속한 사람들에게 쪽지 보내는거^^;;
정말 고맙습니다 T_T 많은 도움이 T_T
댓글 달기