[질문] socket accept

글쓴이: 익명 사용자 / 작성시간: 목, 2002/01/10 - 6:01오후
안녕하세요. 또 질문을 올립니다. ^^;
서버 프로그램을 테스트 중입니다. 그런데 클라이언트에서 tcp 연결을 시
도하면 서버에서는 accept합니다. 또 udp를 사용해서 "aaaaaaaaa" 이런 문
자열을 받으면 서버에서는 recvfrom()을 사용해서 그냥 받습니다. 이때
그 받은 문자열을 저장하기 위한 메모리는 이미 생성되어 있습니다. 매번
새로 생성하지 않죠.
그런데 이게 테스트하면서 top 실행 결과를 보니 4K씩 늘어나더군요. 4K
면 페이지 테이블 크기니까 하나를 할당받는다고 볼 수 잇습니다. 그런데
새로운 메모리를 제가 요구한 적이 없다는게 문제죠. 그래서 accept된 파
일 디스크립터를 위한 버퍼 비슷한 것이 생성되는 것이 아닌가 추측만 하
고 있습니다. 그렇다면 파일 디스크립터를 닫으면 메모리가 돌아오느냐?
그렇지도 않다는 것이 문제입니다. 꼬박 꼬박 4K를 가져갑니다.
이유가 무엇일까요?
그럼 즐거운 하루 되시기 바랍니다. 늦었지만~
Forums:
Re: [질문] socket accept
accept 할때 부모에선..
그 descriptor 를 close 하시나요?.
그렇지 않다면... 계속 descriptor(부모와자식) 가 2개씩...남겨 지게 된
답니다.
Re^2: [질문] socket accept
무슨 말씀이신지? 부모와 자식이란 표현을 쓴 것을 보아 아마도 fork()를
염두해 두고 하신 말씀 같은데 fork()를 사용하지 않습니다.
그런 의도로 말씀하신건지....?
좋은 하루 되시기 바랍니다. ^^;
Re^3: [질문] socket accept
흠...전 TCP 에서 그런 문제가 생기는 줄 알고 얘기한겁니다.
문제가 있다면..소스를 조금 보여주심이 어떠하실런지..
그냥..막연히...udp 를 사용했다고 하면..
어떻게 답변 드려요....--
댓글 달기