Microsoft PowerPoint - 06-CompSys-16-Socket.ppt

Size: px
Start display at page:

Download "Microsoft PowerPoint - 06-CompSys-16-Socket.ppt"

Transcription

1 소켓시스템콜소개 TCP 클라이언트 / 서버프로그래밍 signal(), fork() 시스템콜 TCP 클라이언트 / 서버프로그래밍예 talk_client.c, talk_server.c UDP 클라이언트 / 서버프로그래밍 순천향대학교컴퓨터학부이상정 1 소켓시스템콜소개 순천향대학교컴퓨터학부이상정 2

2 소켓 (socket) 소켓은 TCP/IP 프로토콜을이용하기위한시스템콜인터페이스 1982 년 BSD(Berkeley Software Distribution) 유닉스 4.1 에서처음소개 응용프로그램은소켓을통하여통신망으로 IP 패킷을송수신 소켓을개설하면파일기술자와똑같은기능을하는소켓기술자 ( 소켓번호 ) 가리턴 순천향대학교컴퓨터학부이상정 3 소켓인터페이스 순천향대학교컴퓨터학부이상정 4

3 인터넷소켓의종류 스트림소켓 SOCK_STREAM 연결형 (Connection-Oriented) 소켓 실제통신하는호스트들간의신뢰성있는연결보장 TCP (Transmission Control Protocol) 사용 데이터그램소켓 SOCK_DGRAM 비연결형 (Connectionless) 소켓 신뢰성보장못함 UDP (User Datagram Protocol) 사용 순천향대학교컴퓨터학부이상정 5 소켓번호 소켓을열면소켓기술자 (Socket Descriptor) 가리턴됨 응용프로그램에서호스트와연결을요구하는패킷을송수신할때해당소켓기술자를사용. 소켓기술자를소켓번호라고부름 파일과소켓을기술자테이블을공유 순천향대학교컴퓨터학부이상정 6

4 소켓과응용프로그램 소켓번호는응용프로그램내에서순서대로배정 해당프로그램내에서만유일하게구분 포트번호는 TCP/IP,UDP가지원하는상위계층프로세서구분번호 하나의컴퓨터에서동작하는여러응용프로그램은반드시서로다른포트번호사용해야함. 순천향대학교컴퓨터학부이상정 7 소켓의이용 (1) IP 패킷을주고받기위해결정되어야할다섯가지 통신에사용할프로토콜 (TCP/IP,UDP) 자신의 IP 주소, 자신의포트번호 상대방의 IP 주소, 상대방의포트번호 잘알려진포트번호들 ftp : 21 번 telnet : 23 번 mail : 25 번 http : 80 번 순천향대학교컴퓨터학부이상정 8

5 소켓의이용 (2) 소켓만들기 서버와클라이언트모두필요 socket() 시스템콜호출 성공시정수형의소켓번호리턴 #include <sys/types.h> #include <sys/socket.h> int socket ( int domain, int type, int protocol ) /* domain : 프로토콜체계 */ /* type : 서비스타입 */ /* protocol : 소켓에사용될프로토콜 */ TCP/IP 의경우 Domain : AF_INET Type: SOCK_STREAM Protocol: 0( 시스템자동설정 ) 순천향대학교컴퓨터학부이상정 9 open_socket.c 예 (1) socket() 시스템콜을이용 두개의소켓을만든후소켓번호를출력 두개의파일을열어서각파일의파일기술자를출력 프로그램리스트 파일명 : open_socket.c 기능 : socket() 시스템콜을호출하고, 생성된소켓번호를출력 컴파일 : cc -o open_socket open_socket.c $./open_socket /etc/passwd's file descriptor = 3 stream socket descriptor = 4 datagram socket descriptor = 5 /etc/hosts's file descriptor = 6 순천향대학교컴퓨터학부이상정 10

6 open_socket.c 예 (2) #include <stdio.h> /* 표준입출력함수 */ #include <sys/types.h> /* 소켓시스템콜에필요한상수선언 */ #include <sys/stat.h> /* 파일의상태에대한데이터선언 */ #include <sys/socket.h> /* 소켓시스템콜선언 */ #include <fcntl.h> /* open 에필요한 flag 선언 */ main() { int fd1, fd2, sd1, sd2; /* 파일및소켓번호 */ fd1 = open("/etc/passwd", O_RDONLY, 0); /* 파일열기 */ printf("/etc/passwd's file descriptor = %d n", fd1); sd1 = socket(af_inet, SOCK_STREAM, 0); /* 스트림형소켓열기 */ printf("stream socket descriptor = %d n", sd1); sd2 = socket(af_inet, SOCK_DGRAM, 0); /* 데이터그램형소켓열기 */ printf("datagram socket descriptor = %d n", sd2); fd2 = open("/etc/hosts", O_RDONLY, 0); /* 또다른파일열기 */ printf("/etc/hosts's file descriptor = %d n", fd2); /* 파일및소켓닫기 */ close(fd2); close(fd1); close(sd2); close(sd1); 순천향대학교컴퓨터학부이상정 11 소켓주소구조체 (1) 소켓주소 (Socket Address) 주소체계 (Address family) IP 주소 포트번호 소켓주소구조체, sockaddr struct sockaddr { u_short sa_family; /* address family */ char sa_data[14]; /* 주소 */ 순천향대학교컴퓨터학부이상정 12

7 소켓주소구조체 (2) sockaddr_in 구조체 sockaddr 구조체가불편 4바이트의 IP 주소, 2 바이트의포트번호구분지정 in_addr 32비트의 IP 주소저장구조체 struct in_addr { u_long s_addr; /* 32 비트의 IP 주소를저장할구조체 */ struct sockaddr_in { short sin_family; /* address family */ u_short sin_port; /* 16 비트포트번호 */ struct in_addr sin_addr; /* 32 비트 IP 주소 */ char sin_zero[8]; /* 16 바이트크기를맞추기위한 dummy bits */ sin_family AF_INET( 인터넷주소체계 ), AF_UNIX( 유닉스파일주소체계 ), AF_NS( 제록스주소체계 ) 중 AF_INET 사용 순천향대학교컴퓨터학부이상정 13 절차 (1) 클라이언트 / 서버모델 대표적인네트워크프로그래밍모델 서버 socket() 을호출하여소켓을하나개설 개설된소켓번호와자신의소켓주소를 bind() 시스템콜을통하여연결 bind() 는소켓을특정포트에연결시켜주는역할 #include <sys/types.h> #include <sys/socket.h> int bind ( int sockfd, struct sockaddr*myaddr, int addrlen ) /* sockfd : socket() 으로얻은소켓번호 */ /* *myaddr : IP 주소와포트번호를담고있는 struct sockaddr 에대한포인터 */ /* addrlen : sockaddr 구조체의크기 = sizeof(struct sockaddr) 순천향대학교컴퓨터학부이상정 14

8 절차 (2) 서버 listen() 시스템콜호출하여연결요청대기모드 연결요청이오면 accept() 시스템콜호출 #include <sys/types.h> #include <sys/socket.h> listen( int sockfd, int backlog ) /* sockfd : socket() 으로얻은소켓번호 */ /* backlog : 해당서버에접속할수있는최대연결개수 */ 클라이언트 socket() 을이용소켓을하나개설 connect() 를수행 bind() 는수행하지않음. 클라이언트는자신의 IP나포트번호를알릴필요가없기때문 순천향대학교컴퓨터학부이상정 15 절차 (3) #include <sys/socket.h> accept( int sockfd, void *addr, int *addrlen ) /* sockfd : socket() 으로얻은소켓번호 */ /* *addr : 로컬 struct sockaddr_in의포인터 */ /* *addrlen : sockaddr_in 구조체의크기 = sizeof(struct sockaddr_in) #include <sys/types.h> #include <sys/socket.h> connect( int sockfd, struct sockaddr *serv_addr, int addrlen ) /* sockfd : socket() 으로얻은소켓번호 */ /* *serv_addr : 연결목적지의정보를담고있는 struct sockaddr 구조체포인터 */ /* addrlen : sockaddr 구조체의크기 = sizeof(struct sockaddr) 순천향대학교컴퓨터학부이상정 16

9 절차도 연결형 (TCP) 비연결형 (UDP) 순천향대학교컴퓨터학부이상정 17 데이터송 / 수신시스템콜 (1) SOCK_STREAM TCP 통신채널이확립되면데이터송 / 수신수행 순천향대학교컴퓨터학부이상정 18

10 데이터송 / 수신시스템콜 (2) SOCK_DGRAM UDP 통신채널송수신 소켓번호를얻고 bind() 수행하면연결확립없이언제든지송 / 수신가능 순천향대학교컴퓨터학부이상정 19 인터넷주소변환 (1) 각컴퓨터마다데이터를내부에서표현하는방식이다름 데이터전송이전과수신이후바이트순서를맞추는절차필요 인터넷주소표현방식 도메인네임 (Domain Name) 32비트의 IP 주소 십진수표시법 (Dotted Decimal) 순천향대학교컴퓨터학부이상정 20

11 인터넷주소변환 (2) 바이트순서 (Byte Ordering) 호스트바이트순서 컴퓨터가내부메모리에데이터를저장하는순서 CPU( 중앙처리장치 ) 에따라다름 X86 계열의 CPU가사용하는호스트바이트순서는하위바이트부터메모리에저장 (little endian) MC68000 계열의 CPU에서는상위바이트부터메모리저장 (big endian) 0xC3E2( 십진수 50146) 의호스트바이트순서비교 순천향대학교컴퓨터학부이상정 21 인터넷주소변환 (3) 바이트순서 (Byte Ordering) 네트워크에서바이트단위로데이터가전달되는순서로 big endian 과일치 Little endian인 x86 CPU의호스트바이트순서와네트워크바이트순서는다름 htons() 나 ntohs() 함수를이용해 CPU에맞는호스트바이트순서로변환 unsigned short integer 의변환 (2 바이트체계 ) htons() : host-to-network short 바이트변환 ntohs() : network-to-host short 바이트변환 unsigned long integer 의변환 (4 바이트체계 ) htonl() : host-to-network long 바이트변환 ntohl() : network-to-host long 바이트변환 순천향대학교컴퓨터학부이상정 22

12 IP 주소변환 (1) 32 비트의 IP 주소는도메임네임또는십진수표시법으로변환하여사용가능 표현방법에따른상호변환함수 순천향대학교컴퓨터학부이상정 23 IP 주소변환 (2) #include <arpa/inet.h> char *inet_ntoa(struct in_addr addr); /* IP 주소 -> dotted decimal */ in_addr inet_addr(const char *host); /* dotted decimal -> IP 주소 */ 순천향대학교컴퓨터학부이상정 24

13 ascii_ip.c 예 (1) dotted decimal 로표현된주소 ( 예 : ) 를명령문인자로입력 inet_addr() 을이용하여 4 바이트의 IP 주소 (hexa 로는 c0cb900b 임 ) 로바꾸어화면에출력 이 IP 주소를인자로하여 inet_ntoa() 를호출하여다시 dotted decimal 주소를출력 파일명 : ascii_ip.c 기능 : ASCII (dotted decimal) 로표현된주소를 4바이트 IP 주소로변환 컴파일 : cc -o ascii_ip ascii_ip.c 실행 $./ascii_ip IP Address (hexa) 0xb90cbc0, 순천향대학교컴퓨터학부이상정 25 ascii_ip.c 예 (2) #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> main(int argc, char *argv[]) { char *haddr; struct in_addr host_ip; /* 32 비트 IP 주소구조체 */ if (argc < 2) { printf(" 사용법 : %s IP 주소 (dotted decimal) n ", argv[0]); exit(0); 순천향대학교컴퓨터학부이상정 26

14 ascii_ip.c (3) haddr = argv[1]; /* dotted decimal 주소 */ host_ip.s_addr = inet_addr(haddr); /* IP 주소 (hexa 4 바이트 ) 출력 */ printf("ip Address (hexa) 0x%x, ", host_ip.s_addr); /* dotted decimal 로다시변환하여출력 */ printf("%s n", inet_ntoa(host_ip)); 위에서사용한주소변환함수들은단순히계산만하는함수이므로이러한함수는즉시처리가가능하다그러나도메인네임으로부터 IP 주소를얻거나 IP 주소로부터해당호스트의도메인네임을얻으려면 DNS 서버의도움을받아야하며이러한함수는처리가즉시이루어지지않을수도있다. 순천향대학교컴퓨터학부이상정 27 기타주소변환함수 gethostname() 현재사용중인컴퓨터의도메인네임을알아오는함수 #define HOST_NAME_LEN 50 /* 도메인네임의최대길이 */ char domain[host_name_len+1]; /* 도메인네임을저장할버퍼 */ gethostname ( domain, HOST_NAME_LEN); sethostname() 현재사용중인컴퓨터의도메인네임을변경하는함수 sethostname ( new.sch.ac.kr, strlen( new.sch.ac.kr )); 순천향대학교컴퓨터학부이상정 28

15 TCP 클라이언트 / 서버프로그래밍 순천향대학교컴퓨터학부이상정 29 TCP 클라이언트 / 서버프로그램 TCP 로연결된클라이언트 / 서버프로그램소개 순천향대학교컴퓨터학부이상정 30

16 TCP 클라이언트프로그램작성절차 순천향대학교컴퓨터학부이상정 31 socket(), 소켓개설 socket(af_inet, SOCK_STREAM, 0) 순천향대학교컴퓨터학부이상정 32

17 connect(), 서버에연결요구 클라이언트는 connect() 를호출하기전에연결하고자하는서버의주소를지정 4 바이트의 IP 주소와 2 바이트의포트번호를포함하는소켓주소구조체 sockaddr_in 를작성 int connect ( int s, /* 서버와연결시킬소켓번호 */ const struct sockaddr *addr, /* 상대방서버의소켓주소구조체 */ int addrlen /* 구조체 *addr 의크기 */ ); 클라이언트는 bind() 를사용하여자신이사용할포트번호를명시적으로지정할필요가없으며, 연결형클라이언트에서는 connect() 를호출할때에 TCP 가임의의포트번호를지정해준다. 순천향대학교컴퓨터학부이상정 33 connect(), 서버에연결요구 순천향대학교컴퓨터학부이상정 34

18 메시지송수신 클라이언트와서버가연결되면 send(), recv(), write(), read() 를사용하여서버와메시지를송수신 순천향대학교컴퓨터학부이상정 35 close(), 소켓닫기 close() 는클라이언트나서버중누구나먼저호출할수있다. close() 를호출하기전에 shutdown() 시스템콜을아래와같이사용할수있다. direction 이 1 이면패킷의전송을종료하고 0 이면수신을종료하며 2 이면송수신을모두종료한다. shutdown(s, direction); S: 소켓번호 순천향대학교컴퓨터학부이상정 36

19 TCP 서버프로그램작성절차 순천향대학교컴퓨터학부이상정 37 소켓의생성및연결 socket(), 소켓의생성 서버도클라이언트와통신을하기위해서는트랜스포트프로토콜을지정하여 socket() 으로소켓을만들어야한다. socket(pf_inet, SOCK_DTREAM, 0) bind(), 소켓번호와소켓주소구조체연결 소켓번호와클라이언트가알고있는서버의소켓주소 (IP 주소 + 포트번호 ) 를연결 임의의클라이언트가서버의특정소켓과연결되기위해서서버는반드시 bind() 를호출 순천향대학교컴퓨터학부이상정 38

20 bind() 함수 (1) 순천향대학교컴퓨터학부이상정 39 bind() 함수 (2) int bind( int s,/* 소켓번호 */ struct sockaddr *addr,/* 서버자신의소켓주소구조체포인터 */ intlen); /* *addr 구조체의크기 */ bind() 사용예 #define SERV_IP_ADDR " " #define SERV_PORT 3000 /* 소켓생성 */ s = socket(pf_inet, SOCK_STREAM, 0); struct sockaddr_in server_addr; /* 소켓주소구조체내용 */ server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = inet_addr(serv_ip_addr); server_addr.sin_port = htons(serv_port); /* 소켓번호와소켓주소를 bind */ bind(s, (struct sockaddr *)&server_addr, sizeof(server_addr)); 순천향대학교컴퓨터학부이상정 40

21 bind() 함수 (3) 사용중인컴퓨터의 IP 주소를자동으로가져다쓰려면 INADDR_ANY 라는변수를사용 server_addr.sin_addr.s_addr = htonl(inaddr_any); INADDR_ANY에서 ANY의의미는서버가두개이상의 IP 주소를가지고있을때 ( 즉, multihomed host), 임의의서버 IP 주소를목적지로하여들어오는패킷을모두받아들이겠다는것을나타낸다. 순천향대학교컴퓨터학부이상정 41 listen(), 연결요청을기다리기 listen(), 클라이언트로부터의연결요청을기다리기 서버는클라이언트로부터의연결요청을받아들이기위하여 listen() 을호출 int listen ( int s,/* 소켓번호 */ int log/* 연결을기다리는클라이언트의최대수 */ ); 순천향대학교컴퓨터학부이상정 42

22 accept(), 연결요청수락 accept(), 클라이언트로부터의연결요청수락 클라이언트에서 connect() 로연결요청을보내면이를처리하기위해서서버는 accept() 를호출해두어야한다. accept() 의수행이성공하면접속된클라이언트와의통신에사용할새로운소켓이만들어지고이소켓번호가리턴되며, 실패시에는 -1이리턴된다. 서버는이클라이언트와통신하기위하여 accept() 가리턴한소켓번호를사용하여야한다. accept() 는또한연결된클라이언트의소켓주소구조체와구조체의길이의포인터를함수인자로리턴해준다. int accept ( int s,/* 소켓번호 */ struct sockaddr *addr,/* 연결요청을한클라이언트의소켓주소구조체 */ int *addrlen /* *addr 구조체크기의포인터 */ ); 순천향대학교컴퓨터학부이상정 43 accept(), 연결요청수락 순천향대학교컴퓨터학부이상정 44

23 signal(), fork() 시스템콜 순천향대학교컴퓨터학부이상정 45 소켓관련 UNIX 시스템콜 소켓프로그램작성시많이사용되는유닉스시스템콜을소개 signal() fork() 순천향대학교컴퓨터학부이상정 46

24 signal() 시스템콜 (1) 리눅스시스템에서어떤이벤트 (event) 가발생하면이것을프로세스사이에알리는수단으로시그널이사용된다. 순천향대학교컴퓨터학부이상정 47 signal() 시스템콜 (2) 시그널이발생하였을때리눅스커널이제공하는디폴트처리내용대 신다른동작을수행하도록하려면 signal() 시스템콜을사용 signal(sigio, sigio_func) 호출 후 SIGIO 시그널이 발생하면 sigio_func() 함수가수행 #include <signal.h> int sigio_func(); /* 사용자정의함수선언 */ main() { signal(sigio, sigio_func); /* 시그널처리함수지정 */ : int sigio_func() { /* SIGIO 시그널발생시처리내용 */ 순천향대학교컴퓨터학부이상정 48

25 signal() 시스템콜 (3) 어떤시그널이발생하였을때이를단순히무시하려면다음과같이무시할시그널의종류 ( 예를들면 SIGIO) 를지정하고옵션으로시그널무시 (SIG_IGN) 를선택한다. signal(sigio, SIG_IGN); 순천향대학교컴퓨터학부이상정 49 signal_test.c 예 (1) 카운터프로그램이실행되는도중에사용자가 Ctrl-C 를입력하면시그널 SIGINT 가발생하는데, 이때프로그램이종료되는것이아니라 my_signal() 이라는함수가호출된다. 실행예 $./signal_test 0 1 ^C Ctrl-C pressed. 2 3 ^C Ctrl-C pressed. 4 ^C Ctrl-C pressed. 순천향대학교컴퓨터학부이상정 50

26 signal_test.c 예 (2) 파일명 : signal_test.c 기능 : signal() 시스템콜사용예 컴파일 : cc -o signal_test signal_test.c #include <sys/types.h> #include <signal.h> #include <stdio.h> #include <unistd.h> #include <stdlib.h> int my_signal(); /* 새로운시그널처리함수선언 */ int count = 0; /* Ctrl-C 입력횟수카운터 */ 순천향대학교컴퓨터학부이상정 51 signal_test.c 예 (3) int main() { int i = 0; if (signal(sigint, my_signal) == SIG_ERR) { printf("singal() error"); exit(0); while(count < 3) { sleep(1);/* 1 초간기다림 */ printf("%d n", i++); /* 시그널처리함수정의 */ int my_signal() { printf(" nctrl-c pressed. n"); count++; signal(sigint, my_signal); return 0; 순천향대학교컴퓨터학부이상정 52

27 fork() 시스템콜 (1) 유닉스에서프로세스는 fork() 를이용해서자신과똑같은기능을수행하는프로세스를하나복제할수있다. 두프로세스는프로그램코드, 스택, 파일기술자, 소켓번호등은공유하나, 변수들은공유하지않는다. fork() 가불리면그순간에하나의프로세스가두개의프로세스로되는데, 두프로세스는수행할일을구분하기위하여두프로세스의 fork() 리턴문이서로다르다는것을이용 부모프로세스에게는 fork() 의리턴값으로새로만들어진자식프로세스의 PID 가리턴 자식프로세스의 fork() 의리턴값으로 0 이반환 -1 이반환되면자식프로세스가생성되지않은경우 순천향대학교컴퓨터학부이상정 53 fork() 시스템콜 (2) 순천향대학교컴퓨터학부이상정 54

28 fork() 시스템콜 (3) int PID; PID = fork(); if(pid == 0) child_work(); /* 자식프로세스용코드 */ else parent_work();/* 부모프로세스용코드 */ 순천향대학교컴퓨터학부이상정 55 fork_test.c 예 (1) 부모와자식프로세스가같은이름의변수를각각증가시키고자식프로세스와부모프로세스가변수를공유하지않음을확인한다. 파일명 : fork_test.c 기능 : fork() 시스템콜사용예 컴파일 : cc -o fork_test fork_test.c $./fork_test CHILD - my pid is and parent's pid is global var : 1 local var : 1 PARENT - my pid is 19446, child's pid is global var : 5 local var : 5 순천향대학교컴퓨터학부이상정 56

29 fork_test.c 예 (2) #include <sys/types.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> int global_var = 0; /* 전역변수선언 */ int main(void) { pid_t pid; int local_var = 0;/* 지역변수선언 */ if ((pid = fork()) < 0) { printf("fork error n"); exit(0); /* 자식프로세스 */ else if (pid == 0) { global_var++; local_var++; printf("child - my pid is %d and parent's pid is %d n", getpid(), getppid()); 순천향대학교컴퓨터학부이상정 57 fork_test.c 예 (3) else { /* 부모프로세스 */ sleep(2);/* 2초쉰다 */ global_var += 5; local_var += 5; printf("parent - my pid is %d, child's pid is %d n", getpid(), pid); printf("global var : %d n", global_var); printf("local var : %d n", local_var); 순천향대학교컴퓨터학부이상정 58

30 TCP 클라이언트 / 서버프로그래밍예 talk_client.c, talk_server.c 순천향대학교컴퓨터학부이상정 59 토크클라이언트 / 서버프로그램 토크서버 (talk_server.c) 와클라이언트 (talk_client.c) 가 1:1 통신을하는프로그램 < 서버측 > $ talk_server 3000 Server started. Waiting for client.. R: Hello, Server! Hi, Client R: This is the test messages. I got your messages. R: Ok, bye exit Good bye. < 클라이언트측 > $ talk_client Hello, Server! R: Hi, Client This is the test messages. R: I got your messages. Ok, bye exit Good bye. 순천향대학교컴퓨터학부이상정 60

31 토크클라이언트프로그램, talk_client 사용자의키보드입력처리그리고서버와의통신두가지일을동시에수행하기위해 fork() 시스템콜을사용하여두개의프로세스를생성 부모프로세스는사용자가입력한메시지를읽어서버로전송 자식프로세스는서버가전송한메시지를소켓에서읽어화면에출력 파일명 : talk_client.c 기능 : 토크서버와 1:1 통신을하는클라이언트프로그램 컴파일 : cc -o talk_client talk_client.c 사용법 : talk_client 순천향대학교컴퓨터학부이상정 61 talk_client.c 예 (1) #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/types.h> #include <signal.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #define MAXLINE 1024 char *escapechar = "exit";/* 종료문자정의 */ int main(int argc, char *argv[]) { char line[maxline], sendline[maxline], recvline[maxline+1]; int n, size, comp; pid_t pid; static int s; static struct sockaddr_in server_addr; /* 명령문입력인자처리 */ if (argc!= 3) { printf(" 사용법 : %s server_ip port n", argv[0]); exit(0); 순천향대학교컴퓨터학부이상정 62

32 talk_client.c 예 (2) /* 소켓생성 */ if ((s = socket(af_inet, SOCK_STREAM, 0)) < 0) { printf("client: Can't open stream socket. n"); exit(0); /* server_addr 을 '0' 으로초기화 */ bzero((char *)&server_addr, sizeof(server_addr)); /* server_addr 세팅 */ server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = inet_addr(argv[1]); server_addr.sin_port = htons(atoi (argv[2])); /* 서버에연결요청 */ if (connect(s,(struct sockaddr *)&server_addr,sizeof(server_addr)) < 0) { printf("client: can't connect to server. n"); exit(0); 순천향대학교컴퓨터학부이상정 63 talk_client.c 예 (3) if (( pid = fork()) > 0) { /* 부모프로세스는키보드입력을서버로전송 */ while (fgets(sendline, MAXLINE, stdin)!= NULL) { size = strlen(sendline); if (write(s, sendline, strlen(sendline))!= size) printf("error in write n"); /* 종료문자열입력처리 */ if (strstr(sendline, escapechar)!= NULL ) { printf("good bye. n"); close(s); exit(0); /* while */ /* if */ 순천향대학교컴퓨터학부이상정 64

33 talk_client.c 예 (4) else if (pid == 0) { /* 자식프로세스는소켓으로부터들어오는메시지를화면에출력 */ while (1) { if ((size = read(s, recvline, MAXLINE)) < 0) { printf("error if read"); close(s); exit(0); recvline[size] = ' 0'; /* 종료문자열수신시종료 */ if (strstr(recvline, escapechar)!= NULL ) break; /* 화면출력 */ printf("r: %s", recvline); /* while */ /* else if */ close(s); 순천향대학교컴퓨터학부이상정 65 토크서버프로그램 서버에서도사용자키보드입력과메시지송수신두가지기능을동시에수행하기위해 fork() 시스템콜을이용 파일명 : talk_server.c 기능 : 토크클라이언트와 1:1 통신을한다. 컴파일 : cc -o talk_server talk_server.c 사용법 : talk_server 3000 순천향대학교컴퓨터학부이상정 66

34 talk_server.c 예 (1) #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/types.h> #include <signal.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #define MAXLINE 512 char *escapechar = "exit";/* 종료문자 */ int main(int argc, char *argv[]) { int server_fd, client_fd;/* 소켓번호 */ int clilen, num; char sendline[maxline], recvline[maxline]; int size; pid_t pid; struct sockaddr_in client_addr, server_addr; if (argc!= 2) { printf(" 사용법 : %s port n", argv[0]); exit(0); 순천향대학교컴퓨터학부이상정 67 talk_server.c 예 (2) /* 소켓생성 */ if ((server_fd=socket(af_inet, SOCK_STREAM, 0)) < 0) { printf("server: Can't open stream socket n"); exit(0); /* 서버의소켓주소구조체 server_addr 을 '0' 으로초기화 */ bzero((char *)&server_addr, sizeof(server_addr)); /* server_addr 을세팅 */ server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = htonl(inaddr_any); server_addr.sin_port = htons(atoi( argv[1])); /* bind() 호출 */ if (bind(server_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) { printf("server: Can't bind local address n"); exit(0); 순천향대학교컴퓨터학부이상정 68

35 talk_server.c 예 (3) printf("server started. nwaiting for client.. n"); listen(server_fd, 1); /* 클라이언트연결요청수락 */ clilen = sizeof(client_addr); if ((client_fd = accept(server_fd,(struct sockaddr *)&client_addr, &clilen)) < 0) { printf("server: failed in accepting."); exit(0); if (( pid = fork()) > 0) { /* 부모프로세스는키보드입력을클라이언트로전송 */ while (fgets(sendline, MAXLINE, stdin)!= NULL) { size = strlen(sendline); if (write(client_fd, sendline, strlen(sendline))!= size) printf("error in write n" ); /* 종료문자열입력처리 */ if (strstr(sendline, escapechar)!= NULL ) { printf("good bye. n"); close(client_fd); exit(0); /* while */ /* if */ 순천향대학교컴퓨터학부이상정 69 talk_server.c 예 (4) else if (pid == 0) { /* 자식프로세스는소켓으로부터들어오는메시지를화면에출력 */ while(1) { if((size = read(client_fd, recvline, MAXLINE)) < 0) { printf("error if read n"); close(client_fd); exit(0); recvline[size] = 0'; /* 종료문자열수신시종료 */ if (strstr(recvline, escapechar)!= NULL ) break; /* 화면출력 */ printf("r: %s", recvline); /* while */ /* else if */ close(server_fd); close(client_fd); 순천향대학교컴퓨터학부이상정 70

36 UDP 클라이언트 / 서버프로그래밍 순천향대학교컴퓨터학부이상정 71 UDP 클라이언트프로그램작성절차 순천향대학교컴퓨터학부이상정 72

37 UDP 클라이언트프로그램 비연결형 (UDP) 통신에서사용할소켓을개설할때에는프로토콜로 SOCK_DGRAM 을지정 비연결형소켓은특정호스트와의통신에만사용되는것이아니며이소켓을이용하여임의의호스트로 IP 패킷을보낼수있다. 비연결형서비스이므로연결설정을위한 connect() 시스템콜을사용할필요가없고소켓개설후바로서버와메시지를송수신할수있다. 비연결형소켓을통하여메시지를송수신할때에는각패킷마다목적지의 IP 주소와포트번호 ( 즉소켓주소 ) 를항상함수인자로주어야한다. 순천향대학교컴퓨터학부이상정 73 메시지송수신 순천향대학교컴퓨터학부이상정 74

Microsoft PowerPoint - Supplement-02-Socket Overview.ppt [호환 모드]

Microsoft PowerPoint - Supplement-02-Socket Overview.ppt [호환 모드] 소켓개요 참고문헌 : 컴퓨터네트워크프로그래밍, 김화종, 홍릉과학출판사 Socket 정의 Socket 은 Transport 계층 (TCP 나 UDP) 을이용하는 API 1982 년 BSD 유닉스 41 에서처음소개 윈도우즈의경우 Winsock 제공 JAVA 또한 Socket 프로그래밍을위한클래스제공 Socket Interface 의위치 5-7 (Ses, Pre,

More information

제1장 Unix란 무엇인가?

제1장  Unix란 무엇인가? 1 소켓 2 1 소켓 클라이언트 - 서버모델 네트워크응용프로그램 클리이언트 - 서버모델을기반으로동작한다. 클라이언트 - 서버모델 하나의서버프로세스와여러개의클라이언트로구성된다. 서버는어떤자원을관리하고클라이언트를위해자원관련서비스를제공한다. 3 소켓의종류 소켓 네트워크에대한사용자수준의인터페이스를제공 소켓은양방향통신방법으로클라이언트 - 서버모델을기반으로프로세스사이의통신에매우적합하다.

More information

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode] TCP Server/Client Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 TCP Server Program Procedure TCP Server socket() bind() 소켓생성 소켓번호와소켓주소의결합 listen() accept() read() 서비스처리, write()

More information

제1장 Unix란 무엇인가?

제1장  Unix란 무엇인가? 1 13 장소켓 2 13.1 소켓 클라이언트 - 서버모델 네트워크응용프로그램 클리이언트 - 서버모델을기반으로동작한다. 클라이언트 - 서버모델 하나의서버프로세스와여러개의클라이언트로구성된다. 서버는어떤자원을관리하고클라이언트를위해자원관련서비스를제공한다. 3 소켓의종류 소켓 네트워크에대한사용자수준의인터페이스를제공 소켓은양방향통신방법으로클라이언트 - 서버모델을기반으로프로세스사이의통신에매우적합하다.

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 소켓프로그래밍활용 IT CookBook, 유닉스시스템프로그래밍 학습목표 소켓인터페이스를활용한다양한프로그램을작성할수있다. 2/23 목차 TCP 기반프로그래밍 반복서버 동시동작서버 동시동작서버-exec함수사용하기 동시동작서버-명령행인자로소켓기술자전달하기 UDP 프로그래밍 3/23 TCP 기반프로그래밍 반복서버 데몬프로세스가직접모든클라이언트의요청을차례로처리 동시동작서버

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 얇지만얇지않은 TCP/IP 소켓프로그래밍 C 2 판 4 장 UDP 소켓 제 4 장 UDP 소켓 4.1 UDP 클라이언트 4.2 UDP 서버 4.3 UDP 소켓을이용한데이터송싞및수싞 4.4 UDP 소켓의연결 UDP 소켓의특징 UDP 소켓의특성 싞뢰할수없는데이터젂송방식 목적지에정확하게젂송된다는보장이없음. 별도의처리필요 비연결지향적, 순서바뀌는것이가능 흐름제어 (flow

More information

Microsoft PowerPoint - 12 ¼ÒÄÏÀ» ÀÌ¿ëÇÑ Åë½Å 1.ppt

Microsoft PowerPoint - 12 ¼ÒÄÏÀ» ÀÌ¿ëÇÑ Åë½Å 1.ppt 12 장 소켓을이용한통신 (1) 함수 - inet_addr - inet_ntoa - socket - bind - listen - accept - connect - recv -send 1 서론 파이프를사용하여통신을하기위한시스템호출 / 표준라이브러리함수 함수 의미 inet_addr 문자열형태의인터넷주소를바이너리형태로변환한다. inet_ntoa 바이너리형태의인터넷주소를문자열형태로변환한다.

More information

Microsoft PowerPoint - 15-EmbedSW-10-Socket

Microsoft PowerPoint - 15-EmbedSW-10-Socket 10. 소켓개요 TCP 클라이언트 / 서버프로그래밍절차 오드로이드 I/O 소켓프로그램예 순천향대학교컴퓨터공학과이상정 1 소켓 (Socket) 운영체제복습 소켓 (socket) 은통신의극점 (endpoint) 을정의 소켓은 IP 주소와포트번호두가지를접합 (concatenate) 해서구별 두프로세스의네트워크통신에각각하나씩두개의소켓이필요 순천향대학교컴퓨터공학과 2

More information

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾ P a 02 r t Chapter 4 TCP Chapter 5 Chapter 6 UDP Chapter 7 Chapter 8 GUI C h a p t e r 04 TCP 1 3 1 2 3 TCP TCP TCP [ 4 2] listen connect send accept recv send recv [ 4 1] PC Internet Explorer HTTP HTTP

More information

슬라이드 1

슬라이드 1 Computer Networks Practice Socket 1 DK Han Junghwan Song dkhan@mmlab.snu.ac.kr jhsong@mmlab.snu.ac.kr 2012-3-26 Multimedia and Mobile communications Laboratory Introduction Client / Server model Server

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Network Programming Jo, Heeseung Network 실습 네트워크프로그래밍 멀리떨어져있는호스트들이서로데이터를주고받을수있도록프로그램을구현하는것 파일과는달리데이터를주고받을대상이멀리떨어져있기때문에소프트웨어차원에서호스트들간에연결을해주는장치가필요 이러한기능을해주는장치로소켓이라는인터페이스를많이사용 소켓프로그래밍이란용어와네트워크프로그래밍이랑용어가같은의미로사용

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 1 목포해양대해양컴퓨터공학과 UDP 소켓 네트워크프로그램설계 4 장 2 목포해양대해양컴퓨터공학과 목차 제 4장 UDP 소켓 4.1 UDP 클라이언트 4.2 UDP 서버 4.3 UDP 소켓을이용한데이터송신및수신 4.4 UDP 소켓의연결 3 목포해양대해양컴퓨터공학과 UDP 소켓의특징 UDP 소켓의특성 신뢰할수없는데이터전송방식 목적지에정확하게전송된다는보장이없음.

More information

vi 사용법

vi 사용법 네트워크프로그래밍 6 장과제샘플코드 - 1:1 채팅 (udp 버전 ) 과제 서버에서먼저 bind 하고그포트를다른사람에게알려줄것 클라이언트에서알려준포트로접속 서로간에키보드입력을받아상대방에게메시지전송 2 Makefile 1 SRC_DIR =../../common 2 COM_OBJS = $(SRC_DIR)/addressUtility.o $(SRC_DIR)/dieWithMessage.o

More information

Microsoft PowerPoint - 09-CE-23-윈도우 소켓

Microsoft PowerPoint - 09-CE-23-윈도우 소켓 순천향대학교컴퓨터학부이상정 1 학습내용 인터넷과 TCP/IP 프로토콜 소켓의생성과해제 소켓주소표현 연결지향소켓프로그래밍 순천향대학교컴퓨터학부이상정 2 인터넷과 TCP/IP 프로토콜 순천향대학교컴퓨터학부이상정 3 인터넷구조의프로토콜계층 인터넷구조의프로토콜계층 응용계층 (application layer) 응용서비스제공 http, ftp, smtp, telnet,

More information

본 강의에 들어가기 전

본 강의에 들어가기 전 네트워크프로그래밍 02 장 TCP 소켓 (1) 1 목차 제 2장 TCP 소켓 1. IPv4 TCP 클라이언트 2. IPv4 TCP 서버 3. 소켓의생성과해지 4. 주소지정 5. 소켓에연결 6. 소켓을주소에바인딩하기 7. 클라이언트의연결요청처리 8. 데이터주고받기 9. IPv6의사용 2 소켓통신과정 간략화한소켓통신과정 소켓생성 TCP or UDP 소켓에주소정보할당

More information

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E > 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 소켓 (Socket) (1/2) Socket 이란? 서버와클라이언트가서로특정한규약을사용하여데이터를전송하기위한방식 서버와클라이언트는소켓연결을기다렸다가소켓이연결되면서로데이터를전송 현재네트워크상에서의모든통신의근간은 Socket 이라할수있음 Page 2 1 소켓 (Socket) (2/2)

More information

본 강의에 들어가기 전

본 강의에 들어가기 전 1 목포해양대해양컴퓨터공학과 2 장. TCP 소켓 네트워크프로그램설계 2 목포해양대해양컴퓨터공학과 목차 제 2장 TCP 소켓 1. IPv4 TCP 클라이언트 2. IPv4 TCP 서버 3. 소켓의생성과해지 4. 주소지정 5. 소켓에연결 6. 소켓을주소에바인딩하기 7. 클라이언트의연결요청처리 8. 데이터주고받기 9. IPv6의사용 3 목포해양대해양컴퓨터공학과

More information

Microsoft PowerPoint - 13 ¼ÒÄÏÀ» ÀÌ¿ëÇÑ Åë½Å 2.ppt

Microsoft PowerPoint - 13 ¼ÒÄÏÀ» ÀÌ¿ëÇÑ Åë½Å 2.ppt 13 장소켓을이용한통신 (2) 소켓을이용한통신 (2) 함수 - recvfrom - sendto - uname - gethostname - gethostbyname - gethostbyaddr 1 1. 서론 소켓을사용하여비연결형모델로통신을하기위한함수와그외의함수 함수 의미 recvfrom 비연결형모델에서소켓을통해메시지를수신한다. sendto 비연결형모델에서소켓을통해메시지를송신한다.

More information

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode] Unix Process Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 유닉스기반다중서버구현방법 클라이언트들이동시에접속할수있는서버 서비스를동시에처리할수있는서버프로세스생성을통한멀티태스킹 (Multitasking) 서버의구현 select 함수에의한멀티플렉싱 (Multiplexing)

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Socket Programming 1 Jo, Heeseung 학습목표 TCP/IP 프로토콜의기본개념 IP 주소와포트번호의개념소켓관련구조체와함수소켓을이용한통신프로그램을작성 2 TCP/IP 개요 TCP/IP 인터넷의표준프로토콜 5계층 (4계층) 으로구성 TCP 와 UDP 의차이 3 IP 주소와호스트명 IP 주소와호스트명 IP 주소 : 인터넷을이용할때사용하는주소로점

More information

제1장 Unix란 무엇인가?

제1장  Unix란 무엇인가? 1 12 장파이프 2 12.1 파이프 파이프원리 $ who sort 파이프 3 물을보내는수도파이프와비슷 한프로세스는쓰기용파일디스크립터를이용하여파이프에데이터를보내고 ( 쓰고 ) 다른프로세스는읽기용파일디스크립터를이용하여그파이프에서데이터를받는다 ( 읽는다 ). 한방향 (one way) 통신 파이프생성 파이프는두개의파일디스크립터를갖는다. 하나는쓰기용이고다른하나는읽기용이다.

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 인터넷프로토콜 03 장 도메인네임시스템과주소 패밀리 (IPv4-IPv6 서비스 ) 1 목차 제 3 장도메인네임시스템과주소패밀리 3.1 도메인네임주소를숫자주소로매핑하기 3.2 IP 버전에무관한주소-범용코드의작성 3.3 숫자주소에서도메인네임주소획득하기 2 getaddrinfo() 를활용한주소 범용 (Generic) 코드 주소범용 (Generic) 코드란? 주소버전

More information

<4D F736F F D2034C0E52D554E495820BCD2C4CF20C0C0BFEB20C7C1B7CEB1D7B7A1B9D6>

<4D F736F F D2034C0E52D554E495820BCD2C4CF20C0C0BFEB20C7C1B7CEB1D7B7A1B9D6> 4. UNIX 소켓응용프로그래밍 4.1 소켓의동작모드 소켓의동작모드 blocking, non-blocking, 그리고비동기 (asynchronous) 모드 소켓을처음생성하면 blocking 모드의소켓이생성 blocking 모드소켓 어떤소켓관련시스템콜을호출하였을때네트웍시스템 ( 즉, TCP/IP) 이동작을완료할때까지응용프로세스가멈추어있게 (block) 되는소켓

More information

슬라이드 1

슬라이드 1 1 Computer Networks Practice #1-1 - Socket Programming 이지민 (jmlee@mmlab.snu.ac.kr) 장동현 (dhjang@mmlab.snu.ac.kr) 2011. 9. 14 2 Transport layer 가하는일 Reliability 패킷젂송에오류가생기면잧젂송함으로써마치 오류가나지않는것처럼 싞뢰된젂송을 Application

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된

More information

좀비프로세스 2

좀비프로세스 2 Signal & Inter-Process Communication Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 좀비프로세스 2 좀비프로세스 (zombie process) 좀비프로세스란프로세스종료후메모리상에서사라지지않는프로세스 좀비프로세스의생성이유. 자식프로세스는부모프로세스에게실행결과에대한값을반환해야한다.

More information

<43B7CE20BECBBEC6BAB8B4C220BCD2C4CFC7C1B7CEB1D7B7A1B9D62E687770>

<43B7CE20BECBBEC6BAB8B4C220BCD2C4CFC7C1B7CEB1D7B7A1B9D62E687770> C 로알아보는 소켓프로그래밍 이현환 (NOON) haonun@gmail.com http://noon.tistory.com Hacking Study Grup E.Y.E -------------------------------------------------------------------- 목차 --------------------------------------------------------------------

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Socket Programming 1 Jo, Heeseung 학습목표 TCP/IP 프로토콜의기본개념 IP 주소와포트번호의개념소켓관련구조체와함수소켓을이용한통신프로그램을작성 2 TCP/IP 개요 TCP/IP 인터넷의표준프로토콜 5 계층 (4 계층 ) 으로구성 TCP 와 UDP 의차이 3 IP 주소와호스트명 IP 주소와호스트명 IP 주소 : 인터넷을이용할때사용하는주소로점

More information

1장. 유닉스 시스템 프로그래밍 개요

1장.  유닉스 시스템 프로그래밍 개요 Unix 프로그래밍및실습 7 장. 시그널 - 과제보충 응용과제 1 부모프로세스는반복해서메뉴를출력하고사용자로부터주문을받아자식프로세스에게주문내용을알린다. (SIGUSR1) ( 일단주문을받으면음식이완료되기전까지 SIGUSR1 을제외한다른시그널은모두무시 ) timer 자식프로세스는주문을받으면조리를시작한다. ( 일단조리를시작하면음식이완성되기전까지 SIGALARM 을제외한다른시그널은모두무시

More information

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드] - Socket Programming in Java - 목차 소켓소개 자바에서의 TCP 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 Q/A 에코프로그램 - EchoServer 에코프로그램 - EchoClient TCP Programming 1 소켓소개 IP, Port, and Socket 포트 (Port): 전송계층에서통신을수행하는응용프로그램을찾기위한주소

More information

SYN flooding

SYN flooding Hacking & Security Frontier SecurityFirst SYN flooding - SYN flooding 공격의원리와코드그리고대응 by amur, myusgun, leemeca 2008. 09. myusgun Agenda 개요...3 원리...3 위협...4 잠깐! - 문서에관하여...4 이문서는...4 Code...4 대응방안...4 소스코드...5

More information

Microsoft PowerPoint - ch09_파이프 [호환 모드]

Microsoft PowerPoint - ch09_파이프 [호환 모드] 학습목표 파이프를이용한 IPC 기법을이해한다. 이름없는파이프를이용해통신프로그램을작성할수있다. 이름있는파이프를이용해통신프로그램을작성할수있다. 파이프 IT CookBook, 유닉스시스템프로그래밍 2/20 목차 파이프의개념 이름없는파이프만들기 복잡한파이프생성 양방향파이프활용 이름있는파이프만들기 파이프의개념 파이프 두프로세스간에통신할수있도록해주는특수파일 그냥파이프라고하면일반적으로이름없는파이프를의미

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 파이프 IT CookBook, 유닉스시스템프로그래밍 학습목표 파이프를이용한 IPC 기법을이해한다. 이름없는파이프를이용해통신프로그램을작성할수있다. 이름있는파이프를이용해통신프로그램을작성할수있다. 2/20 목차 파이프의개념 이름없는파이프만들기 복잡한파이프생성 양방향파이프활용 이름있는파이프만들기 3/20 파이프의개념 파이프 두프로세스간에통신할수있도록해주는특수파일 그냥파이프라고하면일반적으로이름없는파이프를의미

More information

본 강의에 들어가기 전

본 강의에 들어가기 전 인터넷프로토콜 02 장 TCP 소켓 목차 제 2 장 TCP 소켓 2.1 IPv4 TCP 클라이언트 2.2 IPv4 TCP 서버 2.3 소켓의생성과해지 2.4 주소지정 2.5 소켓에연결 2.6 소켓을주소에바인딩하기 2.7 클라이언트의연결요청처리 2.8 데이터주고받기 2.9 IPv6 의사용 소켓통신과정 간략화한소켓통신과정 소켓생성 TCP or UDP 소켓에주소정보할당

More information

ABC 11장

ABC 11장 12 장고급응용 0 수행중인프로그램 프로세스 모든프로세스는유일한프로세스식별번호 (PID) 를가짐 유닉스에서는 ps 명령을사용하여프로세스목록을볼수있음 12-1 프로세스 $ ps -aux USER PID %CPU %MEM SZ RSS TT STAT START TIME COMMAND blufox 17725 34.0 1.6 146 105 i2 R 15:13 0:00

More information

Network Programming

Network Programming Part 3 Socket Programming for Content Delivery in Multimedia Networks (Unix 기반 ) 유닉스소켓시스템콜 BSD 소켓 API의소개 IP 주소변환설명 소켓을이용한클라이언트및서버프로그램작성방법소개 유닉스시스템콜 signal()

More information

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - 03-TCP Programming.ppt Chapter 3. - Socket in Java - 목차 소켓소개 자바에서의 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 에코프로그램 - EchoServer 에코프로그램 - EchoClient Q/A 1 1 소켓소개 IP,, and Socket 포트 (): 전송계층에서통신을수행하는응용프로그램을찾기위한주소 소켓 (Socket):

More information

6주차.key

6주차.key 6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

Network Programming

Network Programming Part 3 Socket Programming (Unix 기반 ) 목차 Socket 의개념 BSD 소켓 API 의소개 Socket 생성및 ID IP 주소변환설명 Socket 사용형태 소켓을이용한클라이언트및서버프로그램작성방법소개 채칭프로그램작성

More information

3. 다음장에나오는 sigprocmask 함수의설명을참고하여다음프로그램의출력물과그출력물이화면이표시되는시점을예측하세요. ( 힌트 : 각줄이표시되는시점은다음 4 가지중하나. (1) 프로그램수행직후, (2) kill 명령실행직후, (3) 15 #include <signal.

3. 다음장에나오는 sigprocmask 함수의설명을참고하여다음프로그램의출력물과그출력물이화면이표시되는시점을예측하세요. ( 힌트 : 각줄이표시되는시점은다음 4 가지중하나. (1) 프로그램수행직후, (2) kill 명령실행직후, (3) 15 #include <signal. 학번 : 이름 : 1. 다음가정하에서아래프로그램의출력물을예측하세요. 가정 : 부모프로세스의 process id=20100, 자식프로세스의 process id=20101. int glob = 31; /* external variable in initialized data */ char buf[] = "a write to stdout\n"; int main(void)

More information

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - chap13-입출력라이브러리.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,

More information

Chapter 4 UDP 소켓 사용법

Chapter 4 UDP 소켓 사용법 Chapter 4 UDP 소켓사용법 개요 소켓이란 (Unix 소켓 ) 소켓의구조 소켓의유형 UDP 에대한이해 교재 Chapter 4.1 UDP 클라이언트 교재 Chapter 4.2 UDP 서버 교재 Chapter 4.3 UDP 소켓을이용한 송신및수신 소켓이란? Socket 은통신을위한끝점 (endpoint) 을생성하여파일에대한 open 과유사한방식으로기술자

More information

Microsoft PowerPoint C-구조체

Microsoft PowerPoint C-구조체 순천향대학교컴퓨터공학과이상정 1 학습내용 구조체 (structure) 구조체선언, 멤버참조 구조체초기화, 인수전달 자기참조구조체, 연결리스트 공용체 (union) 비트필드 (bit field) 순천향대학교컴퓨터공학과 2 구조체란? 구조체는하나의변수명으로여러개의상이한자료를한꺼번에다루려고할때사용 구조체선언 struct 태그명 ; 멤버리스트 순천향대학교컴퓨터공학과

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 인터넷프로토콜 5 장 데이터송수신 (3) 1 파일전송메시지구성예제 ( 고정크기메시지 ) 전송방식 : 고정크기 ( 바이너리전송 ) 필요한전송정보 파일이름 ( 최대 255 자 => 255byte 의메모리공간필요 ) 파일크기 (4byte 의경우최대 4GB 크기의파일처리가능 ) 파일내용 ( 가변길이, 0~4GB 크기 ) 메시지구성 FileName (255bytes)

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

슬라이드 1

슬라이드 1 / 유닉스시스템개요 / 파일 / 프로세스 01 File Descriptor file file descriptor file type unix 에서의파일은단지바이트들의나열임 operating system 은파일에어떤포맷도부과하지않음 파일의내용은바이트단위로주소를줄수있음 file descriptor 는 0 이나양수임 file 은 open 이나 creat 로 file

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 얇지만얇지않은 TCP/IP 소켓프로그래밍 C 2 판 Chap 2. Basic TCP Sockets Chap. 2 Basic TCP Sockets 2.1 IPv4 TCP 클라이언트 2.2 IPv4 TCP 서버 2.3 소켓의생성과해지 2.4 주소지정 2.5 소켓에연결 2.6 소켓을주소와바인딩하기 2.7 클라이언트의연결요청처리 2.8 데이터주고받기 2.9 IPv6의사용

More information

슬라이드 1

슬라이드 1 Task 통신및동기화 : Socket Chapter #13 강의목차 소켓개요 소켓관련시스템콜 네트워크라이브러리 스트림소켓을이용한프로세스통신 데이터그램소켓을이용한프로세스통신 Unix System Programming 2 소켓 (Socket) 소켓 (Socket) 개요 (1) 프로세스간의통신을위한데이터출입구 파이프도구를일반화 양방향데이터통신을지원 상호연관성이없는프로세스간에통신이가능

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 얇지만얇지않은 TCP/IP 소켓프로그래밍 C 2 판 Chap 3. Of Names and Address Families Chap. 3 Of Names and Address Families 3.1 도메인네임주소를숫자주소로매핑하기 3.2 IP 버전에무관한주소 - 범용코드의작성 3.3 숫자주소에서도메인네임주소획득하기 기존 IPv4 전용, IPv6 전용코드의취약성

More information

/chroot/lib/ /chroot/etc/

/chroot/lib/ /chroot/etc/ 구축 환경 VirtualBox - Fedora 15 (kernel : 2.6.40.4-5.fc15.i686.PAE) 작동 원리 chroot유저 ssh 접속 -> 접속유저의 홈디렉토리 밑.ssh의 rc 파일 실행 -> daemonstart실행 -> daemon 작동 -> 접속 유저만의 Jail 디렉토리 생성 -> 접속 유저의.bashrc 의 chroot 명령어

More information

The OSI Model

The OSI Model Advanced Socket Programming Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 다중처리기술 2 다중처리기술 Multitasking Multi-process Multi-thread Multiplexing Polling Selecting Interrupt

More information

3. 다음장에나오는 sigprocmask 함수의설명을참고하여다음프로그램의출력물과그출력물이화면이표시되는시점을예측하세요. ( 힌트 : 각줄이표시되는시점은다음 6 가지중하나. (1) 프로그램수행직후, (2) 5 초후 (3) 10 초후 (4) 15 #include <signa

3. 다음장에나오는 sigprocmask 함수의설명을참고하여다음프로그램의출력물과그출력물이화면이표시되는시점을예측하세요. ( 힌트 : 각줄이표시되는시점은다음 6 가지중하나. (1) 프로그램수행직후, (2) 5 초후 (3) 10 초후 (4) 15 #include <signa 학번 : 이름 : 1. 다음가정하에서아래프로그램의출력물을예측하세요. 가정 : 부모프로세스의 process id=10100, 자식프로세스의 process id=10101. char buf[] = "a write to stdout\n"; int var; /* automatic variable on the stack */ pid_t pid; int glob = 31;

More information

Microsoft Word - Network Programming_NewVersion_01_.docx

Microsoft Word - Network Programming_NewVersion_01_.docx 10. Unix Domain Socket 105/113 10. Unix Domain Socket 본절에서는 Unix Domain Socket(UDS) 에대한개념과이에대한실습을수행하고, 이와동시에비신뢰적인통신시스템의문제점에대해서분석하도록한다. 이번실습의목표는다음과같다. 1. Unix Domain Socket의사용법을익히고, IPC에대해서실습 2. TCP/IP의응용계층과전달계층의동작을구현및실습

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi

More information

<43B7CE20BECBBEC6BAB8B4C C5EBBDC52E687770>

<43B7CE20BECBBEC6BAB8B4C C5EBBDC52E687770> C 로알아보는 UDP 통신 이현환 (NOON) haonun@gmail.com http://noon.tistory.com Hacking Study Grup E.Y.E -------------------------------------------------------------------- 목차 --------------------------------------------------------------------

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 인터넷프로토콜 03 장 도메인네임시스템과주소 패밀리 (IPv4-IPv6 서비스 ) 1 목포해양대해양컴퓨터공학과 목차 제 3 장도메인네임시스템과주소패밀리 3.1 도메인네임주소를숫자주소로매핑하기 3.2 IP 버전에무관한주소-범용코드의작성 3.3 숫자주소에서도메인네임주소획득하기 2 목포해양대해양컴퓨터공학과 기존 IPv4 전용, IPv6 전용코드의 취약성 전용주소코드

More information

chap7.key

chap7.key 1 7 C 2 7.1 C (System Calls) Unix UNIX man Section 2 C. C (Library Functions) C 1975 Dennis Ritchie ANSI C Standard Library 3 (system call). 4 C?... 5 C (text file), C. (binary file). 6 C 1. : fopen( )

More information

제1장 Unix란 무엇인가?

제1장  Unix란 무엇인가? 4 장파일 컴퓨터과학과박환수 1 2 4.1 시스템호출 컴퓨터시스템구조 유닉스커널 (kernel) 하드웨어를운영관리하여다음과같은서비스를제공 파일관리 (File management) 프로세스관리 (Process management) 메모리관리 (Memory management) 통신관리 (Communication management) 주변장치관리 (Device

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

Microsoft PowerPoint - Lecture_Note_2.ppt [Compatibility Mode]

Microsoft PowerPoint - Lecture_Note_2.ppt [Compatibility Mode] Understanding of Socket and File I/O Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 컴퓨터통신프로토콜 컴퓨터통신프로토콜데이터를원활이주고받을수있도록정한약속컴퓨터네트워크프로토콜 통신장비는서로간의통신방법이미리정의되어있어야함 같은통신프로토콜을지원하는장비간에만통신이가능컴퓨터통신은네트워크형태로운영

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

Microsoft Word - KPMC-400,401 SW 사용 설명서

Microsoft Word - KPMC-400,401 SW 사용 설명서 LKP Ethernet Card SW 사용설명서 Version Information Tornado 2.0, 2.2 알 림 여기에실린내용은제품의성능향상과신뢰도의증대를위하여예고없이변경될수도있습니다. 여기에실린내용의일부라도엘케이일레븐의사전허락없이어떠한유형의매체에복사되거나저장될수없으며전기적, 기계적, 광학적, 화학적인어떤방법으로도전송될수없습니다. 엘케이일레븐경기도성남시중원구상대원동

More information

<4D F736F F F696E74202D FC7C1B7CEBCBCBDBA20BBFDBCBAB0FA20BDC7C7E0205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D FC7C1B7CEBCBCBDBA20BBFDBCBAB0FA20BDC7C7E0205BC8A3C8AF20B8F0B5E55D> 학습목표 프로세스를생성하는방법을이해한다. 프로세스를종료하는방법을이해한다. exec함수군으로새로운프로그램을실행하는방법을이해한다. 프로세스를동기화하는방법을이해한다. 프로세스생성과실행 IT CookBook, 유닉스시스템프로그래밍 2/24 목차 프로세스생성 프로세스종료함수 exec 함수군활용 exec 함수군과 fork 함수 프로세스동기화 프로세스생성 [1] 프로그램실행

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 프로세스생성과실행 IT CookBook, 유닉스시스템프로그래밍 학습목표 프로세스를생성하는방법을이해한다. 프로세스를종료하는방법을이해한다. exec함수군으로새로운프로그램을실행하는방법을이해한다. 프로세스를동기화하는방법을이해한다. 2/24 목차 프로세스생성 프로세스종료함수 exec 함수군활용 exec 함수군과 fork 함수 프로세스동기화 3/24 프로세스생성 [1]

More information

10. 시스템 프로그래밍

10.  시스템 프로그래밍 네트워크프로그래밍 Unix Network Programming, 2nd Ed., W. Richard Stevens, Prentice Hall PTR, 1999. 한국어판 Unix Network Programming, Stevens 저, 김치하, 이재용역, 대영사, 1991. 컴퓨터네트워크프로그래밍, 개정판, 김화종, 홍릉과학출판사, 2000. 10.7 소켓

More information

10.

10. 10. 10.1 10.2 Library Routine: void perror (char* str) perror( ) str Error 0 10.3 10.3 int fd; /* */ fd = open (filename, ) /*, */ if (fd = = -1) { /* */ } fcnt1 (fd, ); /* */ read (fd, ); /* */ write

More information

Microsoft PowerPoint - 09-CE-24-채팅 프로그램

Microsoft PowerPoint - 09-CE-24-채팅 프로그램 순천향대학교컴퓨터학부이상정 1 학습내용 사용자인터페이스 프로그램구성 TCP 연결설정프로그램 서버연결설정 클라이언트연결설정 TCP 데이터송수신 순천향대학교컴퓨터학부이상정 2 사용자인터페이스 순천향대학교컴퓨터학부이상정 3 1:1 채팅프로그램 한프로그램이동시에서버와클라이언트로동작 프로그램시작시서버로동작 서버소켓생성하고상대방접속요청대기 채팅을위한연결요청시클라이언트로동작

More information

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - [2009] 02.pptx 원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

제12장 파일 입출력

제12장 파일 입출력 제 4 장파일입출력 리눅스시스템프로그래밍 청주대학교전자공학과 한철수 1 시스템호출 (system call) 파일 (file) 임의접근 (random access) 주요학습내용 2 4.1 절 커널의역할 (kernel) 커널 (kernel) 은운영체제의핵심부분으로서, 하드웨어를운영관리하는여러가지서비스를제공함 파일관리 (File management) 디스크 프로세스관리

More information

untitled

untitled Step Motor Device Driver Embedded System Lab. II Step Motor Step Motor Step Motor source Embedded System Lab. II 2 open loop, : : Pulse, 1 Pulse,, -, 1 +5%, step Step Motor (2),, Embedded System Lab. II

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

Microsoft PowerPoint PythonGUI-socket

Microsoft PowerPoint PythonGUI-socket : 채팅프로그래밍 순천향대학교컴퓨터공학과 이상정 순천향대학교컴퓨터공학과 1 학습내용 인터넷구조 인터넷구성요소 인터넷주소 클라이언트 / 서버구조 소켓프로그래밍소개 파이썬소켓프로그래밍 TCP 클라이언트 / 서버프로그래밍 스레드소개 파이썬스레드 채팅클라이언트 / 서버프로그램 순천향대학교컴퓨터공학과 2 네트워크요소 네트워크가장자리 (edge) 호스트 : 클라이언트와서버

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 소켓프로그래밍기초 IT CookBook, 유닉스시스템프로그래밍 학습목표 TCP/IP 프로토콜의기본개념을이해한다. IP 주소와포트번호의개념을이해한다. 소켓관련구조체와함수를이해한다. 소켓을이용한통신프로그램을작성할수있다. 2/42 목차 TCP/IP 개요 IP 주소와호스트명 포트번호 소켓프로그래밍기초 소켓인터페이스함수 유닉스도메인소켓예제 인터넷소켓예제 3/42 TCP/IP

More information

학번 : 이름 1. 다음프로그램실행결과를예측하시오. $./a.out & [1] 7216 $ kill -USR $ kill -USR 아래학생이작성한쓰레드코드의문제점을설명하시오. void* thread_main() { pthread_mutex_t

학번 : 이름 1. 다음프로그램실행결과를예측하시오. $./a.out & [1] 7216 $ kill -USR $ kill -USR 아래학생이작성한쓰레드코드의문제점을설명하시오. void* thread_main() { pthread_mutex_t 학번 : 이름 1. 다음프로그램실행결과를예측하시오. $./a.out & [1] 7216 $ kill -USR1 7216 $ kill -USR2 7216 2. 아래학생이작성한쓰레드코드의문제점을설명하시오. void* thread_main() pthread_mutex_t lock=pthread_mutex_initializer; pthread_mutex_lock(&lock);

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED Controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment

More information

1장. 유닉스 시스템 프로그래밍 개요

1장.  유닉스 시스템 프로그래밍 개요 9 장. 파이프 Unix 프로그래밍및실습 1 강의내용 1 절개요 2 절이름없는파이프 3 절이름있는파이프 http://lily.mmu.ac.kr/lecture/13u2/ch09.pdf 책에나온내용반드시 man 으로확인할것! UNIX, LINUX 등시스템마다차이가있을수있음을반드시인식 2 기본실습 #1 [ 예제 9-1] ~ [ 예제 9-7] ( 각 10점 ) 과제개요

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-SEGMENT DEVICE CONTROL - DEVICE DRIVER Jo, Heeseung 디바이스드라이버구현 : 7-SEGMENT HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 디바이스드라이버구현 : 7-SEGMENT 6-Digit 7-Segment LED

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 중급소켓프로그래밍 (3) 네트워크프로그래밍 6 장 1 목차 제 6장중급소켓프로그래밍 6.1 소켓옵션 6.2 시그널 6.3 넌블로킹입 / 출력 6.4 멀티태스킹 6.5 멀티플렉싱 6.6 다수의수싞자처리 2 멀티태스킹 멀티태스킹이란? 사젂적의미 한사람의사용자가한대의컴퓨터로 2 가지이상의작업을동시에처리하거나, 2 가지이상의프로그램들을동시에실행시키는것 소켓에서의멀티태스킹

More information

Microsoft PowerPoint - 09-Pipe

Microsoft PowerPoint - 09-Pipe 9. 파이프 상명대학교소프트웨어학부 파이프 시그널은이상한사건이나오류를처리하는데는이용하지만, 한프로세스로부터다른프로세스로대량의정보를전송하는데는부적합하다. 파이프 한프로세스를다른관련된프로세스에연결시켜주는단방향의통신채널 2 pipe() Usage #include int pipe(int filedes[2]); 3 < ex_1.c > #include

More information

Microsoft PowerPoint UnixNetProg.ppt [호환 모드]

Microsoft PowerPoint UnixNetProg.ppt [호환 모드] 유닉스네트워크프로그래밍 Unix Network Programming, 2nd Ed., W. Richard Stevens, Prentice Hall PTR, 1999. 한국어판 Unix Network Programming, 2nd Ed., W. Richard Stevens 저, 김치하, 이재용편역, 교보문고, 1999. 컴퓨터네트워크프로그래밍, 개정판, 김화종,

More information

1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 #define _CRT_SECURE_NO_WARNINGS #include #include main() { char ch; printf(" 문자 1개를입력하시오 : "); scanf("%c", &ch); if (isalpha(ch))

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Text-LCD Device Control - Device driver Jo, Heeseung M3 모듈에장착되어있는 Tedxt LCD 장치를제어하는 App 을개발 TextLCD 는영문자와숫자일본어, 특수문자를표현하는데사용되는디바이스 HBE-SM5-S4210 의 TextLCD 는 16 문자 *2 라인을 Display 할수있으며, 이 TextLCD 를제어하기위하여

More information

<4D F736F F F696E74202D FB8DEB8F0B8AE20B8C5C7CE205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D FB8DEB8F0B8AE20B8C5C7CE205BC8A3C8AF20B8F0B5E55D> 학습목표 통신프로그램이무엇인지이해한다. 을이용한 IPC 기법을이해한다. 함수를사용해프로그램을작성할수있다. IT CookBook, 유닉스시스템프로그래밍 2/20 목차 의개념 함수 해제함수 의보호모드변경 파일의크기확장 매핑된메모리동기화 데이터교환하기 의개념 파일을프로세스의메모리에매핑 프로세스에전달할데이터를저장한파일을직접프로세스의가상주소공간으로매핑 read, write

More information

9장 윈도우 소켓 프로그래밍

9장   윈도우 소켓 프로그래밍 윈도우소켓프로그래밍 _A_2015 버전 IT CookBook, 윈도우 API 프로그래밍 한빛미디어의윈도우 API 프로그래밍, 윈도우네트워크프로그래밍, 혜지원 API programming 을참조함! Updated 2015.11.22 1 학습목표 TCP/IP 프로토콜의개념을이해하고, 윈도우프로그래밍을이용한간단한채팅프로그램을작성하여이해도를높인다. 내용 소켓연결 메시지교환

More information

Microsoft PowerPoint - UnixNetProg.ppt [호환 모드]

Microsoft PowerPoint - UnixNetProg.ppt [호환 모드] 유닉스네트워크프로그래밍 Unix Network Programming, 2nd Ed., W. Richard Stevens, Prentice Hall PTR, 1999. 한국어판 Unix Network Programming, 2nd Ed., W. Richard Stevens 저, 김치하, 이재용편역, 교보문고, 1999. 컴퓨터네트워크프로그래밍, 개정판, 김화종,

More information

자바-11장N'1-502

자바-11장N'1-502 C h a p t e r 11 java.net.,,., (TCP/IP) (UDP/IP).,. 1 ISO OSI 7 1977 (ISO, International Standards Organization) (OSI, Open Systems Interconnection). 6 1983 X.200. OSI 7 [ 11-1] 7. 1 (Physical Layer),

More information

hd132x_k_v1r3_Final_.PDF

hd132x_k_v1r3_Final_.PDF HelloDevice ( HD1320E/1320/1321) Version 11 1 2 1 2 3 31 HD1320/1320E 311 312 313 RS232 32 HD1321 321 322 33 4 41 42 421 HD1320/1320E 422 HD1321 43 431 IP 432 IP 44 441 442 443 RS232 5 51 52 521 TCP 522

More information

[ 목차 ] 1. 취약점개요 2. 배경지식 3. 취약점발생결과 (exploit 테스트 ) 4. 취약점발생원인분석 4.1 취약점 Q&A 5. exploit 분석 6. 보안대책 7. 결론 8. 레퍼런스 2

[ 목차 ] 1. 취약점개요 2. 배경지식 3. 취약점발생결과 (exploit 테스트 ) 4. 취약점발생원인분석 4.1 취약점 Q&A 5. exploit 분석 6. 보안대책 7. 결론 8. 레퍼런스 2 CVE-2016-3857 취약점분석보고서 ( 안드로이드커널임의쓰기취약점 ) ㅁ작성자 : x90c (x90chacker@gmail.com) ㅁ작성일 : 2018 년 7 월 18 일 ( 수 ) ㅁ대외비등급 : A (Top Secret) 1 [ 목차 ] 1. 취약점개요 2. 배경지식 3. 취약점발생결과 (exploit 테스트 ) 4. 취약점발생원인분석 4.1 취약점

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 인터넷프로토콜 5 장 데이터송수신 (1) 1 제 5 장데이터의송수신 5.1 정수인코딩 5.2 메시지생성, 프레이밍, 그리고파싱 5.3 마무리 2 들어가기전 TCP/IP 는사용자의데이터를검사하거나변경하지않고그대로전송 응용프로토콜은연속적인필드로구성된메시지형태로정의 인코딩 (encoding)/ 디코딩 (decoding) 또는파싱 (parsing) 네트워크응용프로그램개발방법

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

목차 목차포트스캔코드포트스캔결과포트스캔탐지코드포트스캔탐지결과 참조

목차 목차포트스캔코드포트스캔결과포트스캔탐지코드포트스캔탐지결과 참조 C++ 이용한포트스캔 Winpcap 이용기존수업시간 Client, BasicDump 코드이용 제출일 2016, 06, 01 전공사이버경찰학과 과목네트워크보안프로그래밍학번 10121702 담당교수소길자이름김주명 목차 목차포트스캔코드포트스캔결과포트스캔탐지코드포트스캔탐지결과 참조 02 03 05 06 11 12 2 포트스캔코드 #include "stdafx.h"

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information