recvn()

Server/Winodw Network 2015. 8. 10. 14:40

사용자 정의함수 recvn()

 

int    recvn( SOCKET s, char *buf, int len, int flags )

{

int received;

char *ptr = buf;

int  left = len;

 

while( left > 0 )

{

received = recv( s, ptr, left, flags );

if( received == SOCKET_ERROR )

return SOCKET_ERROR;

else if ( received == 0 )

break;

letf -= recived;

ptr += received;

}

return (len - left);

}

1. received는 recv함수의 리턴값 저장하는 변수

2. ptr이 애플리케이션 버퍼의 시작주소를 가리키도록 한다.

    데이터를 읽을때마다 ptr이 증가한다.

3. left변수는 아직 읽지않은 데이터 크기를 나타낸다.

4. 아직 읽지 않은 데이터가 있다면 계속 루프를 돈다.

5. ptr , left 값을 갱신

6. 읽은 바이트수를 리턴한다.

 

'Server > Winodw Network' 카테고리의 다른 글

select 모델  (0) 2015.08.11
소켓입출력모델  (0) 2015.08.10
브로드캐스팅  (0) 2015.08.08
클라이언트 함수  (0) 2015.08.07
TCP/IP 서버/클라 구조  (0) 2015.08.04
admin