네트워크 프로그래밍 연습문제(5장)
- 최초 등록일
- 2004.11.11
- 최종 저작일
- 2004.10
- 20페이지/ 한컴오피스
- 가격 1,000원
목차
1.TCP 소켓을 하나 개설한 후 아래의 소켓 옵션 값들을 출력하는 show_sockopt.c 프로그램을 작성하시오.
2. 위의 show_sockopt.c 프로그램에서는 연결되지 않은 상태의 TCP 소켓 옵션을 출력해 보았다. show_sockopt.c 를 수정하여 연결되기 전의 소켓 옵션과 연결된 이후의 소켓 옵션을 차이를 보여주는 show_conn_sockopt.c 프로그램을 작성하시오.
3. TCP 소켓의 수신버퍼 크기인 SO_RCVBUF와 송신버퍼 크기인 SO_SNDBUF 값을 변경한 후 그 값이 변경한대로 설정되어 있는지를 확인하는 프로그램을 작성하시오. 버퍼의 크기를 아래와 같은 값으로 각각 지정할 때의 결과를 확인하시오
4. TCP 에코 클라이언트에서 메시지를 전송한 후 MSG_PEEK 옵션을 주고 recv() 함수를 호출하여 수신버퍼에 메시지가 얼마나 도착했는지를 확인하는 프로그램을 작성하시오
5. 문제 5-4의 내용을 UDP 소켓에서 작성하고 TCP 소켓의 경우와 어떤 차이가 있는지를 설명하시오.
6. TCP 에코 클라이언트 프로그램의 마지막 부분에서 close() 함수를 호출하면 서버와 FIN 패킷을 주고받게 된다. SO_LINGER 옵션을 사용해서 RST(reset)이 전송되는 tcp_reset_cli.c 프로그램을 작성하시오. 이때 서버에서 RST을 수신한 것을 확인할 수 있도록 recv() 함수의 리턴 값을 검사하고 perror() 함수로 에러의 원인을 출력하시오.
본문내용
네트워크 프로그래밍 5장 연습문제
1.TCP 소켓을 하나 개설한 후 아래의 소켓 옵션 값들을 출력하는 show_sockopt.c 프로그램을 작성하시오.
SO_KEEPALIVE SO_LINGER SO_RCVBUF SO_OOBINLINE
SO_SNDBUF TCP_NODELAY TCP_MAXSEG
☞
#include <sys/socket.h>
#include <netinet/tcp.h>
#include <netinet/in.h>
int main(void)
{
int s;
int set,len;
struct linger l;
s = socket(AF_INET,SOCK_STREAM,0);
getsockopt(s,SOL_SOCKET, SO_KEEPALIVE,&set,&len);
printf("SOL_KEEPALIVE ==> %d\n",set);//SOL_KEEPALIVE 부분
getsockopt(s,SOL_SOCKET, SO_LINGER, &l, &len);
printf("SOL_LINGER ==> linger.l_onoff(%d),linger.l_linger(%d)\n"
,l.l_onoff,l.l_linger);//SOL_lINGER 부분
참고 자료
네트워크 프로그래밍(홍릉과학출판사) 연습문제