네트워크 프로그래밍 연습문제
- 최초 등록일
- 2004.11.11
- 최종 저작일
- 2004.10
- 25페이지/ 한컴오피스
- 가격 1,000원
목차
네트워크 프로그래밍 3(4번만)장 연습문제
4. 본문에서 소개한 토크 서버 프로그램 tcp_talkserv.c를 변형하여, 새로운 프로세스를 하나 생성하고 이 프로세스에서는 10초 간격으로 현재의 시간을 클라이언트에게 전송하도록 하시오.(힌트: 현재 시각을 문자열로 화면에 출력하는 코드는 다음과 같다.)
네트워크 프로그래밍 4장 연습문제
1. 하나의 채팅 클라이언트 프로그램에서 최대 50개의 TCP 소켓을 개설하고 이들을 각각 서버에 연결하는 busy_connect.c 프로그램을 작성하시오
2. fork & exec 를 이용해서 문제 4-1의 busy_connect.c 프로그램을 여러 개 실행시킬 수 있는 bomb.c 프로그램을 작성하시오. 이제 bomb.c를 사용하여 임의의 채팅 서버
3. 네트워크 관련 에러코드에는 아래와 같은 것들이 있는데 strerror() 함수를 이용해서 아래 각 errno에 대한 에러 내용을 출력해보시오.
4. 비동기형 채팅 프로그램에서 서버는 select() 함수에서 블록상태가 된다. 이때 클라이언트가 CTLR+C를 누르면 서버의 select()가 에러를 리턴하는지를 확인하시오. 에러가 발생하지 않았다면 select() 이후 호출되는 recv()에서는 에러가 발생하는지 확인하시오. recv()나 select()에서 에러가 발생하면 에러의 원인을 알아내고 에러가 발생하지 않도록 프로그램을 수정하시오.
5. tcp_chatserv.c 프로그램에 2명의 클라이언트 접속되어 있었을 때, 서버 터미널에서 CTRL+C를 누르면 클라이언트는 어떻게 동작하는지 확인하는 프로그램을 작성하시오.
본문내용
< 네트워크 프로그래밍 3,4장 연습문제 >
네트워크 프로그래밍 3(4번만)장 연습문제
4. 본문에서 소개한 토크 서버 프로그램 tcp_talkserv.c를 변형하여, 새로운 프로세스를 하나 생성하고 이 프로세스에서는 10초 간격으로 현재의 시간을 클라이언트에게 전송하도록 하시오.(힌트: 현재 시각을 문자열로 화면에 출력하는 코드는 다음과 같다.)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char *argv[]) {
time_t tim;
tim = time(NULL);
printf("현재 시각은 %s ", ctime(&tim));
return 0;
}
☞
서버쪽 소스(tcp_talkserv.c)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
char *EXIT_STRING = "exit"; // 종료문자
int recv_and_print(int sd); // 상대로부터 메시지 수신후 화면출력
참고 자료
네트워크 프로그래밍(홍릉과학출판사) 연습문제