[완료] 소켓 생성 질문입니다.

poplinux의 이미지

다음과 같이 소켓을 생성한 후 리턴값으로 소켓을 받는 예제를 보았습니다. 이렇게 사용해도 괜찮은 것인지요? 혹시 괜찮다면 이유가 무엇일까요?

SOCKET makeSocket(.....)
{
     return socket(......);
}
 
 
int main(int argc, char *argv[])
{
 
   SOCKET s;
 
   s = makeSocket(....);
 
}

위와 같이 작성하면 소켓 번호는 makeSocket() 영역에서만 존재하는게 아닌가요? 아니면 소켓은 특수한 존재여서 다른 영역에 생겨서 함수가 종료되어도 존재하는 것인지요?

revoman의 이미지

소켓번호라 함은 파일 디스크립터입니다. 번호니까 번호만 알면 함수밖에서도 그 번호로 컨트롤하면 되겠죠? ^^;; 위에서 언급된 SOCKET TYPE은 integer형을 type define 한 것입니다.

poplinux의 이미지

넵 감사합니다.

========================
조직 : E.L.D(Embedded Linux Developer/Designer)
블로그 : poplinux@tistory.com
카페 : cafe.naver.com/poplinux

임베디드 리눅스 관련 프리렌서 지향