poll()함수(무한대기)를 사용하여 client 의 접속을 받아들이고 client로 데이터 전송하고 있습니다.
최초 client-1 접속시 정상동작합니다. client-2 접속시에 문제가 발생합니다.
client-1 sockfd에서 계속적으로 event가 발생하여 poll()에서 리턴을 하는데 revent값이 0으로 나옵니다. 계속 돌게 됨으로 cpu점유도 95%가 되구요..
답변을 기다리겠습니다.
man page를 참고해 보심이.. ^^a
반환값 성공시, 양수 값이 반환되며 반환된 숫자는 revents 필드가 가 지고 있는 구조체의 숫자이다(다시 말해서, 보고된 이벤트들이 나 에러들을 가지고 있는 이들 파일 기술자). 0 은 호출이 타 임 아웃이 걸렸고 어떤 파일 기술자도 선택되지 않았음을 가리 킨 다. 에러이면 -1이 리턴되며 errno 는 적당한 값으로 설정 된다.
leilei 님의 답변에 감사드립니다.
poll()에서는 양수를 리턴하고 있습니다.
첫번째 client가 접속하면 서버와 클라이언트간의 데이터 전송이 자연스럽게 이루이 지다가
두번째 client가 접속을하면 첫번째client sockfd에서 event 발생하였다고 poll에서 계속 쉬지않고 리턴을 하고 잇습니다. revent값은 0입니다.
어디서 잘못된것인지 조언부탁 드립니다.
http://www.joinc.co.kr/modules.php?name=News&file=article&sid=26&mode=nested
이곳을 참고 하심도 좋을 것 같구요.. 이벤트가 발생한 fd를 잘못 찾는다든지.. close가 되었는데 처리가 잘 안되었다든가.. 여러 경우가 있으니 소스를 올려 주시면 좋겠네요
위 문서를 보시면 아마 해결 될지도 모르죠.. :)
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
man page를 참고해 보심이.. ^^a[quote]
man page를 참고해 보심이.. ^^a
답변
leilei 님의 답변에 감사드립니다.
poll()에서는 양수를 리턴하고 있습니다.
첫번째 client가 접속하면 서버와 클라이언트간의 데이터 전송이
자연스럽게 이루이 지다가
두번째 client가 접속을하면 첫번째client sockfd에서 event 발생하였다고
poll에서 계속 쉬지않고 리턴을 하고 잇습니다.
revent값은 0입니다.
어디서 잘못된것인지 조언부탁 드립니다.
[url]http://www.joinc.co.kr/modules.php?
http://www.joinc.co.kr/modules.php?name=News&file=article&sid=26&mode=nested
이곳을 참고 하심도 좋을 것 같구요..
이벤트가 발생한 fd를 잘못 찾는다든지..
close가 되었는데 처리가 잘 안되었다든가..
여러 경우가 있으니 소스를 올려 주시면 좋겠네요
위 문서를 보시면 아마 해결 될지도 모르죠.. :)
댓글 달기