accept( )에 대한 질문 인데요 ...

hyper9의 이미지

다음과 같이 accept()를 사용해 보았는데요..

int fd, new;
int size = sizeof(struct sockaddr_in);
struct sockaddr_in Addr;

new = accept(fd, (struct sockaddr *) &Addr, &size);

그런 경우에, 3개의 인자의 내용을 모두 동일하게 주었는데
accept()로 부터의 return값인 new가 다르게 나온다면
어째서 일까요?

두가지의 서로 다른 값이 나오네요.
조언 부탁드립니다.

hansolo의 이미지

다르게 나오는게 맞는거 아닌가요?

accept()가 하는 역할이 뭔지 찾아보세요~

freestyle의 이미지

Quote:
RETURN VALUE
The call returns -1 on error. If it succeeds, it returns a non-nega-
tive integer that is a descriptor for the accepted socket.

각 client들과 연결된 descriptor가 달라야
각 연결을 구분할 수 있겠죠?

===============================
Go to the U-City

----------------------------------------------------------------------------------------
Don't Feed the Trolls!
----------------------------------------------------------------------------------------

dong1036의 이미지

send 하실때 첫번째 매개변수로 fd값이 들어가는데..

이 값이 똑같으면, 똑같은데 가겠죠 ^^;;

그래서 당연히 값이 다릅니다. ;;

음 냐냐~