2009년 상반기 사업계획
|
|
- 계인 빈
- 6 years ago
- Views:
Transcription
1 소켓프로그래밍기초 IT CookBook, 유닉스시스템프로그래밍
2 학습목표 TCP/IP 프로토콜의기본개념을이해한다. IP 주소와포트번호의개념을이해한다. 소켓관련구조체와함수를이해한다. 소켓을이용한통신프로그램을작성할수있다. 2/42
3 목차 TCP/IP 개요 IP 주소와호스트명 포트번호 소켓프로그래밍기초 소켓인터페이스함수 유닉스도메인소켓예제 인터넷소켓예제 3/42
4 TCP/IP 개요 TCP/IP 인터넷의표준프로토콜 5 계층 (4 계층 ) 으로구성 TCP 와 UDP 의차이 4/42
5 IP 주소와호스트명 [1] IP 주소와호스트명 IP주소 : 인터넷을이용할때사용하는주소로점 (.) 으로구분된 32비트숫자 호스트명 :. 시스템에부여된이름 호스트명 ( 도메인명 ) 과 IP주소를관리하는서비스 -> DNS 호스트명과 IP 주소변환 /etc/hosts 파일또는 DNS, NIS 등 /etc/nsswitch.conf 파일에주소변환을누가할것인지지정 hosts: files dns 호스트명과주소읽어오기 : gethostent(3), sethostent(3), endhostent(3) #include <netdb.h> struct hostent *gethostent(void); int sethostent(int stayopen); int endhostent(void); 5/42
6 IP 주소와호스트명 [1] gethostent : 호스트명과 IP 주소를읽오 hostent 구조체에저장 sethostent : 데이터베이스의읽기위치를시작위치로재설정 endhostent : 데이터베이스를닫는다 hostent 구조체 struct hostent { char *h_name; char **h_aliases; int h_addrtype; int h_length; char **h_addr_list; } 6/42
7 [ 예제 11-1] 호스트명읽어오기 01 #include <netdb.h> 02 #include <stdio.h> int main(void) { 05 struct hostent *hent; sethostent(0); while ((hent = gethostent())!= NULL) 10 printf("name=%s\n", hent->h_name); endhostent(); return 0; 15 } 처음위치로이동 DB 닫기 ex11_1.c DB 의내용을차례로읽어오기 # gcc ex11_1.c 정의되지않음 첫번째참조된 왜실행파일이생성되지않을까? 기호 파일 : endhostent /var/tmp//ccwqu9hn.o gethostent /var/tmp//ccwqu9hn.o sethostent /var/tmp//ccwqu9hn.o ld: 치명적 : 기호참조오류. a.out에출력이기록되지않음 collect2: ld returned 1 exit status 7/42
8 [ 예제 11-1] 실행결과 표준 C 라이브러리에없는함수들이기때문에 endhostent, gethostent, sethostent libnsl.so 라이브러리를링크해야 -> /usr/lib 디렉토리에위치 # gcc -o ex11_1.out ex11_1.c -lnsl /etc/host 파일의내용이다음과같을때 # cat /etc/hosts # # Internet host table # localhost hanbit 실행결과 # ex11_1.out Name=localhost Name= Name=hanbit 8/42
9 IP 주소와호스트명 [2] 호스트명으로정보검색 : gethostbyname(3) #include <netdb.h> struct hostent *gethostbyname(const char *name); IP 주소로정보검색 : gethostbyaddr(3) #include <netdb.h> struct hostent *gethostbyaddr(const char *addr, int len, int type); type 에지정할수있는값 AF_UNSPEC 0 /* 미지정 */ AF_UNIX 1 /* 호스트내부통신 */ AF_INET 2 /* 인터네트워크통신 : UDP, TCP 등 */ AF_IMPLINK 3 /* Arpanet의 IMP 주소 */ AF_PUP 4 /* PUP 프로토콜 : BSP 등 */ AF_CHAOS 5 /* MIT의 CHAOS 프로토콜 */ AF_NS 6 /* XEROX의 NS 프로토콜 */ AF_NBS 7 /* NBS 프로토콜 */ 9/42
10 포트번호 [1] 포트번호 호스트에서동작하고있는서비스를구분하는번호 2바이트정수로 0~65535까지사용가능 잘알려진포트 : 이미정해져있고자주사용하는포트 텔넷 (23), HTTP(80), FTP(21) 관련파일 : /etc/services 포트정보읽어오기 : getservent(3), setservent(3), endservent(3) #include <netdb.h> struct servent *getservent(void); int setservent(int stayopen); int endservent(void); getservent : 포트정보를읽어 servent 구조체로리턴 setservent : 읽기위치를시작으로재설정 endservent : 데이터베이스닫기 struct servent { char *s_name; char **s_aliases; int s_port; char **s_proto; } 10/42
11 [ 예제 11-2] getservent 함수로포트정보읽어오기 ex11_2.c 01 #include <netdb.h> 02 #include <stdio.h> int main(void) { 05 struct servent *port; 06 int n; setservent(0); for (n = 0; n < 5; n++) { 11 port = getservent(); 12 printf("name=%s, Port=%d\n", port->s_name, port->s_port); 13 } endservent(); return 0; 18 } 처음위치로이동 DB 닫기 socket 라이브러리를지정해서컴파일해야한다. # gcc o ex11_2.out ex11_2.c -lsocket DB 의내용을차례로 5 개만읽어오기 # ex11_2.out Name=tcpmux, Port=256 Name=echo, Port=1792 Name=echo, Port=1792 Name=discard, Port=2304 Name=discard, Port= /42
12 포트번호 [2] 서비스명으로정보검색 : getservbyname(3) #include <netdb.h> struct servent *getservbyname(const char *name, const char *proto); name : 검색할포트명 proto : tcp 또는 udp 또는 NULL 포트번호로정보검색 : getservbyport(3) #include <netdb.h> struct servent *getservbyport(int port, const char *proto); proto : tcp 또는 udp 또는 NULL 12/42
13 소켓프로그래밍기초 [1] 소켓의종류 AF_UNIX : 유닉스도메인소켓 ( 시스템내부프로세스간통신 ) AF_INET : 인터넷소켓 ( 네트워크를이용한통신 ) 소켓의통신방식 SOCK_STREAM : TCP 사용 SOCK_DGRAM : UDP 사용 AF_UNIX SOCK_STREAM AF_UNIX SOCK_DGRAM AF_INET SOCK_STREAM AF_INET SOCK_DGRAM 13/42
14 소켓프로그래밍기초 [2] 소켓주소구조체 유닉스도메인소켓의주소구조체 struct sockaddr_un { sa_family_t sun_famyly; char sun_path[108] }; sun_family : AF_UNIX sun_path : 통신에사용할파일의경로명 인터넷소켓의주소구조체 struct sockaddr_in { sa_family_t sin_family; in_port_t sin_port; struct in_addr sin_addr; }; struct in_addr { in_addr_t s_addr; }; 14/42
15 소켓프로그래밍기초 [3] 바이트순서함수 정수를저장하는방식 : 빅엔디안, 리틀엔디안 빅엔디안 : 메모리의낮은주소에정수의첫바이트를위치 -> 모토로라, 썬 리틀엔디안 : 메모리의높은주소에정수의첫바이트를위치 -> 인텔 TCP/IP 네트워크에서바이트순서표준 : 빅엔디안 호스트바이트순서 (HBO) : 시스템에서사용하는바이트순서 네트워크바이트순서 (NBO) : 네트워크에서사용하는바이트순서 #include <sys/types.h> #include <netinet/in.h> #include <inttypes.h> uint32_t htonl(unit32_t hostlong); uint16_t htons(unit16_t hostshort); uint32_t ntohl(unit32_t netlong); uint16_t ntohs(unit16_t netshort); htonl :32비트 HBO를 32비트 NBO로변환 htons : 16비트 HBO를 16비트 NBO로변환 ntohl : 32비트 NBO를 32비트 HBO로변환 ntohs : 16비트 NBO를 16비트 HBO로변환 15/42
16 [ 예제 11-3] NBO 를 HBO 로변환하기 ex11_3.c 01 #include <netdb.h> 02 #include <stdio.h> int main(void) { 05 struct servent *port; 06 int n; setservent(0); for (n = 0; n < 5; n++) { 11 port = getservent(); 12 printf("name=%s, Port=%d\n", port->s_name, ntohs(port->s_port)); 13 } endservent(); return 0; 18 } NBO 를 HBO 로변환하기위한함수호출 # ex11_3.out Name=tcpmux, Port=1 Name=echo, Port=7 Name=echo, Port=7 Name=discard, Port=9 Name=discard, Port=9 16/42
17 [ 예제 11-4] HBO 를 NBO 로변환하기 ex11_4.c 01 #include <netdb.h> 02 #include <stdio.h> int main(void) { 05 struct servent *port; port = getservbyname("telnet", "tcp"); 08 printf("name=%s, Port=%d\n", port->s_name, ntohs(port->s_port)); port = getservbyport(htons(21), "tcp"); 11 printf("name=%s, Port=%d\n", port->s_name, ntohs(port->s_port)); return 0; 14 } 이름으로서비스포트번호검색 HBO 를 NBO 로변환하여포트번호검색 # ex11_4.out Name=telnet, Port=23 Name=ftp, Port=21 17/42
18 IP 주소변환함수 IP 주소의형태 과같이점 (.) 으로구분된형태 시스템내부저장방법 : 이진값으로바꿔서저장 외부적사용형태 : 문자열로사용 문자열행태의 IP 주소를숫자형태로변환 : inet_addr(3) #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> in_addr_t inet_addr(const char *cp); 구조체형태의 IP 주소를문자열형태로변환 : inet_ntoa(3) #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> char *inet_ntoa(const struct in_addr in); 18/42
19 [ 예제 11-5] IP 주소변환하기 ex11_5.c int main(void) { 10 in_addr_t addr; 11 struct hostent *hp; 12 struct in_addr in; if ((addr = inet_addr(" ")) == (in_addr_t)-1) { 15 printf("error : inet_addr( \n"); 16 exit(1); 17 } 18 주소로호스트명검색 19 hp = gethostbyaddr((char *)&addr, 4, AF_INET); 20 if (hp == NULL) { 21 (void) printf("host information not found\n"); 22 exit(2); 23 } printf("name=%s\n", hp->h_name); (void) memcpy(&in.s_addr, *hp->h_addr_list, sizeof (in.s_addr)); 0; 28 printf("ip=%s\n", inet_ntoa(in)); return 0; 31 } 문자열행태를이진형태로변환 구조체형태에서문자열로변환하여출력 # gcc -o ex11_5.out ex11_5.c -lsocket -lnsl # ex11_5.out Name= IP= /42
20 소켓인터페이스함수 [1] 소켓인터페이스함수 socket : 소켓파일기술자생성 bind : 소켓파일기술자를지정된 IP 주소 / 포트번호와결합 (bind) listen : 클라이언트의접속요청대기 connect : 클라이언트가서버에접속요청 accept : 클라이언트의접속허용 recv : 데이터수신 (SOCK_STREAM) send : 데이터송신 (SOCK_STREAM) recvfrom : 데이터수신 (SOCK_DGRAM) sendto : 데이터송신 (SOCK_DGRAM) close : 소켓파일기술자종료 20/42
21 소켓인터페이스함수 [2] 소켓생성하기 : socket(2) #include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol); domain : 소켓종류 (AF_UNIX, AF_INET) type : 통신방식 (TCP, UDP) protocol : 소켓에이용할프로토콜 int sd; sd = socket(af_inet, SOCK_STREAM, 0); 21/42
22 소켓인터페이스함수 [3] 소켓에이름지정하기 : bind(3) #include <sys/types.h> #include <sys/socket.h> int bind(int s, const struct sockaddr *name, int namelen); name : 소켓의이름을표현하는구조체 int sd; struct sockaddr_in sin; memset((char *)&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; sin.sin_port = htons(9000); sin.sin_addr.s_addr = inet_addr(" "); memset(&(sin.sin_zero), 0, 8); bind(sd, (struct sockaddr *)&sin, sizeof(struct sockaddr)); 22/42
23 소켓인터페이스함수 [4] 클라이언트연결기다리기 : listen(3) #include <sys/types.h> #include <sys/socket.h> int listen(int s, int backlog); backlog : 최대허용클라이언트수 listen(sd, 10); 연결요청수락하기 : accept(3) #include <sys/types.h> #include <sys/socket.h> int accept(int s, struct sockaddr *addr, socklen_t *addrlen); addr: 접속을요청한클라이언트의 IP 정보 int sd, new_sd; struct sockaddr_in sin, clisin; new_sd = accept(sd, &clisin, &sizeof(struct sockaddr_in)); 23/42
24 소켓인터페이스함수 [5] 서버와연결하기 : connect(3) #include <sys/types.h> #include <sys/socket.h> int connect(int s, const struct sockaddr *name, int namelen); name : 접속하려는서버의 IP 정보 int sd; struct sockaddr_in sin; memset((char *)&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; sin.sin_port = htons(9000); sin.sin_addr.s_addr = inet_addr(" "); memset(&(sin.sin_zero), 0, 8); connect(sd, (struct sockaddr *)&sin, sizeof(struct sockaddr)); 24/42
25 소켓인터페이스함수 [6] 데이터보내기 : send(3) #include <sys/types.h> #include <sys/socket.h> ssize_t send(int s, const void *msg, size_t len, int flags); char *msg = "Send Test\n"; int len = strlen(msg) + 1; if (send(sd, msg, len, 0) == -1) { perror("send"); exit(1); } 데이터받기 : recv(3) #include <sys/types.h> #include <sys/socket.h> ssize_t recv(int s, void *buf, size_t len, int flags); char buf[80]; int len, rlen; if ((rlen = recv(sd, buf, len, 0)) == -1) { perror("recv"); exit(1); } 25/42
26 소켓인터페이스함수 [7] UDP 데이터보내기 : sendto(3) #include <sys/types.h> #include <sys/socket.h> ssize_t sendto(int s, const void *msg, size_t len, int flags, const struct sockaddr *to, int tolen); to : 메시지를받을호스트의주소 char *msg = "Send Test\n"; int len = strlen(msg) + 1; struct sockaddr_in sin; int size = sizeof(struct sockaddr_in); memset((char *)&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; sin.sin_port = htons(9000); sin.sin_addr.s_addr = inet_addr(" "); memset(&(sin.sin_zero), 0, 8); if (sendto(sd, msg, len, 0, (struct sockaddr *)&sin, size) == -1) { perror("sendto"); exit(1); } 26/42
27 소켓인터페이스함수 [3] UDP 데이터받기 : recvfrom(3) #include <sys/types.h> #include <sys/socket.h> ssize_t recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, int *fromlen); from : 메시지를보내는호스트의주소 char buf[80]; int len, size; struct sockaddr_in sin; if (recvfrom(sd, buf, len, 0, (struct sockaddr *)&sin, &size) == -1) { perror("recvfrom"); exit(1); } 27/42
28 소켓함수의호출순서 28/42
29 [ 예제 11-6] (1) 유닉스도메인소켓 ( 서버 ) ex11_6s.c #define SOCKET_NAME "hbsocket" 소켓이름 int main(void) { 11 char buf[256]; 12 struct sockaddr_un ser, cli; 13 int sd, nsd, len, clen; 유닉스도메인소켓생성 if ((sd = socket(af_unix, SOCK_STREAM, 0)) == -1) { 16 perror("socket"); 17 exit(1); 18 } memset((char *)&ser, 0, sizeof(struct sockaddr_un)); 21 ser.sun_family = AF_UNIX; 22 strcpy(ser.sun_path, SOCKET_NAME); 23 len = sizeof(ser.sun_family) + strlen(ser.sun_path); 24 소켓구조체에값지정 29/42
30 [ 예제 11-6] (1) 유닉스도메인소켓 ( 서버 ) ex11_6s.c 25 if (bind(sd, (struct sockaddr *)&ser, len)) { 26 perror("bind"); 27 exit(1); 28 } if (listen(sd, 5) < 0) { 31 perror("listen"); 32 exit(1); 33 } printf("waiting...\n"); 36 if ((nsd = accept(sd, (struct sockaddr *)&cli, &clen)) == -1) { 37 perror("accept"); 38 exit(1); 39 } 클라이언트접속수용 if (recv(nsd, buf, sizeof(buf), 0) == -1) { 42 perror("recv"); 43 exit(1); 44 } 46 printf("received Message: %s\n", buf); 47 close(nsd); 48 close(sd); return 0; 51 } 소켓기술자와소켓주소구조체연결 클라이언트접속대기 클라이언트가보낸메시지읽기 30/42
31 [ 예제 11-6] (2) 유닉스도메인소켓 ( 클라이언트 ) ex11_6c.c #define SOCKET_NAME "hbsocket" int main(void) { 11 int sd, len; 12 char buf[256]; 13 struct sockaddr_un ser; if ((sd = socket(af_unix, SOCK_STREAM, 0)) == -1) { 16 perror("socket"); 17 exit(1); 18 } memset((char *)&ser, '\0', sizeof(ser)); 21 ser.sun_family = AF_UNIX; 22 strcpy(ser.sun_path, SOCKET_NAME); 23 len = sizeof(ser.sun_family) + strlen(ser.sun_path); if (connect(sd, (struct sockaddr *)&ser, len) < 0) { 26 perror("bind"); 27 exit(1); 28 } 소켓생성 서버에연결요청 소켓주소구조체에값지정 31/42
32 [ 예제 11-6] (2) 유닉스도메인소켓 ( 클라이언트 ) ex11_6c.c 30 strcpy(buf, "Unix Domain Socket Test Message"); 31 if (send(sd, buf, sizeof(buf), 0) == -1) { 32 perror("send"); 33 exit(1); 34 } 서버에데이터전송 35 close(sd); return 0; 38 } # ex11_6s.out Waiting... Received Message: Unix Domain Socket Test Message # ex11_6c.out # 서버 클라이언트 32/42
33 [ 예제 11-7] (1) 인터넷소켓 ( 서버 ) ex11_7s.c #define PORTNUM int main(void) { 12 char buf[256]; 13 struct sockaddr_in sin, cli; 14 int sd, ns, clientlen = sizeof(cli); if ((sd = socket(af_inet, SOCK_STREAM, 0)) == -1) { 17 perror("socket"); 18 exit(1); 19 } memset((char *)&sin, '\0', sizeof(sin)); 22 sin.sin_family = AF_INET; 23 sin.sin_port = htons(portnum); 24 sin.sin_addr.s_addr = inet_addr(" "); if (bind(sd, (struct sockaddr *)&sin, sizeof(sin))) { 27 perror("bind"); 28 exit(1); 29 } 포트번호 소켓생성 소켓주소구조체생성 소켓기술자와소켓주소구조체연결 33/42
34 [ 예제 11-7] (1) 인터넷소켓 ( 서버 ) ex11_7s.c 31 if (listen(sd, 5)) { 클라이언트접속요청대기 32 perror("listen"); 33 exit(1); 34 } if ((ns = accept(sd, (struct sockaddr *)&cli, &clientlen))==-1){ 37 perror("accept"); 38 exit(1); 39 } sprintf(buf, "Your IP address is %s", inet_ntoa(cli.sin_addr)); 42 if (send(ns, buf, strlen(buf) + 1, 0) == -1) { 43 perror("send"); 44 exit(1); 45 } 46 close(ns); 47 close(sd); return 0; 50 } 클라이언트와연결 클라이언트로데이터보내기 34/42
35 [ 예제 11-7] (2) 인터넷소켓 ( 클라이언트 ) ex11_7c.c #define PORTNUM int main(void) { 12 int sd; 13 char buf[256]; 14 struct sockaddr_in sin; 15 포트번호 소켓생성 16 if ((sd = socket(af_inet, SOCK_STREAM, 0)) == -1) { 17 perror("socket"); 18 exit(1); 19 } memset((char *)&sin, '\0', sizeof(sin)); 22 sin.sin_family = AF_INET; 23 sin.sin_port = htons(portnum); 24 sin.sin_addr.s_addr = inet_addr(" "); 25 소켓주소구조체생성 35/42
36 [ 예제 11-7] (2) 인터넷소켓 ( 클라이언트 ) ex11_7c.c 26 if (connect(sd, (struct sockaddr *)&sin, sizeof(sin))) { 27 perror("connect"); 28 exit(1); 서버에접속요청 29 } if (recv(sd, buf, sizeof(buf), 0) == -1) { 32 perror("recv"); 33 exit(1); 서버가보낸데이터읽기 34 } 35 close(sd); 36 printf("from Server : %s\n", buf); return 0; 39 } # gcc -o ex11_7s ex11_7-inet-s.c -lsocket -lnsl # gcc -o ex11_7c ex11_7-inet-c.c -lsocket -lnsl 서버 # ex11_7s.out # ex11_7c.out From Server : Your IP address is 클라이언트 36/42
37 IT CookBook, 유닉스시스템프로그래밍
PowerPoint 프레젠테이션
Socket Programming 1 Jo, Heeseung 학습목표 TCP/IP 프로토콜의기본개념 IP 주소와포트번호의개념소켓관련구조체와함수소켓을이용한통신프로그램을작성 2 TCP/IP 개요 TCP/IP 인터넷의표준프로토콜 5계층 (4계층) 으로구성 TCP 와 UDP 의차이 3 IP 주소와호스트명 IP 주소와호스트명 IP 주소 : 인터넷을이용할때사용하는주소로점
More informationPowerPoint 프레젠테이션
Socket Programming 1 Jo, Heeseung 학습목표 TCP/IP 프로토콜의기본개념 IP 주소와포트번호의개념소켓관련구조체와함수소켓을이용한통신프로그램을작성 2 TCP/IP 개요 TCP/IP 인터넷의표준프로토콜 5 계층 (4 계층 ) 으로구성 TCP 와 UDP 의차이 3 IP 주소와호스트명 IP 주소와호스트명 IP 주소 : 인터넷을이용할때사용하는주소로점
More information2009년 상반기 사업계획
소켓프로그래밍활용 IT CookBook, 유닉스시스템프로그래밍 학습목표 소켓인터페이스를활용한다양한프로그램을작성할수있다. 2/23 목차 TCP 기반프로그래밍 반복서버 동시동작서버 동시동작서버-exec함수사용하기 동시동작서버-명령행인자로소켓기술자전달하기 UDP 프로그래밍 3/23 TCP 기반프로그래밍 반복서버 데몬프로세스가직접모든클라이언트의요청을차례로처리 동시동작서버
More informationMicrosoft PowerPoint - 13 ¼ÒÄÏÀ» ÀÌ¿ëÇÑ Åë½Å 2.ppt
13 장소켓을이용한통신 (2) 소켓을이용한통신 (2) 함수 - recvfrom - sendto - uname - gethostname - gethostbyname - gethostbyaddr 1 1. 서론 소켓을사용하여비연결형모델로통신을하기위한함수와그외의함수 함수 의미 recvfrom 비연결형모델에서소켓을통해메시지를수신한다. sendto 비연결형모델에서소켓을통해메시지를송신한다.
More informationMicrosoft PowerPoint - 12 ¼ÒÄÏÀ» ÀÌ¿ëÇÑ Åë½Å 1.ppt
12 장 소켓을이용한통신 (1) 함수 - inet_addr - inet_ntoa - socket - bind - listen - accept - connect - recv -send 1 서론 파이프를사용하여통신을하기위한시스템호출 / 표준라이브러리함수 함수 의미 inet_addr 문자열형태의인터넷주소를바이너리형태로변환한다. inet_ntoa 바이너리형태의인터넷주소를문자열형태로변환한다.
More information슬라이드 1
Task 통신및동기화 : Socket Chapter #13 강의목차 소켓개요 소켓관련시스템콜 네트워크라이브러리 스트림소켓을이용한프로세스통신 데이터그램소켓을이용한프로세스통신 Unix System Programming 2 소켓 (Socket) 소켓 (Socket) 개요 (1) 프로세스간의통신을위한데이터출입구 파이프도구를일반화 양방향데이터통신을지원 상호연관성이없는프로세스간에통신이가능
More information제1장 Unix란 무엇인가?
1 소켓 2 1 소켓 클라이언트 - 서버모델 네트워크응용프로그램 클리이언트 - 서버모델을기반으로동작한다. 클라이언트 - 서버모델 하나의서버프로세스와여러개의클라이언트로구성된다. 서버는어떤자원을관리하고클라이언트를위해자원관련서비스를제공한다. 3 소켓의종류 소켓 네트워크에대한사용자수준의인터페이스를제공 소켓은양방향통신방법으로클라이언트 - 서버모델을기반으로프로세스사이의통신에매우적합하다.
More information제1장 Unix란 무엇인가?
1 13 장소켓 2 13.1 소켓 클라이언트 - 서버모델 네트워크응용프로그램 클리이언트 - 서버모델을기반으로동작한다. 클라이언트 - 서버모델 하나의서버프로세스와여러개의클라이언트로구성된다. 서버는어떤자원을관리하고클라이언트를위해자원관련서비스를제공한다. 3 소켓의종류 소켓 네트워크에대한사용자수준의인터페이스를제공 소켓은양방향통신방법으로클라이언트 - 서버모델을기반으로프로세스사이의통신에매우적합하다.
More informationMicrosoft 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 informationThe 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슬라이드 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본 강의에 들어가기 전
1 목포해양대해양컴퓨터공학과 2 장. TCP 소켓 네트워크프로그램설계 2 목포해양대해양컴퓨터공학과 목차 제 2장 TCP 소켓 1. IPv4 TCP 클라이언트 2. IPv4 TCP 서버 3. 소켓의생성과해지 4. 주소지정 5. 소켓에연결 6. 소켓을주소에바인딩하기 7. 클라이언트의연결요청처리 8. 데이터주고받기 9. IPv6의사용 3 목포해양대해양컴퓨터공학과
More informationMicrosoft 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본 강의에 들어가기 전
네트워크프로그래밍 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À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö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 informationThe 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 informationMicrosoft PowerPoint - ch09_파이프 [호환 모드]
학습목표 파이프를이용한 IPC 기법을이해한다. 이름없는파이프를이용해통신프로그램을작성할수있다. 이름있는파이프를이용해통신프로그램을작성할수있다. 파이프 IT CookBook, 유닉스시스템프로그래밍 2/20 목차 파이프의개념 이름없는파이프만들기 복잡한파이프생성 양방향파이프활용 이름있는파이프만들기 파이프의개념 파이프 두프로세스간에통신할수있도록해주는특수파일 그냥파이프라고하면일반적으로이름없는파이프를의미
More information2009년 상반기 사업계획
파이프 IT CookBook, 유닉스시스템프로그래밍 학습목표 파이프를이용한 IPC 기법을이해한다. 이름없는파이프를이용해통신프로그램을작성할수있다. 이름있는파이프를이용해통신프로그램을작성할수있다. 2/20 목차 파이프의개념 이름없는파이프만들기 복잡한파이프생성 양방향파이프활용 이름있는파이프만들기 3/20 파이프의개념 파이프 두프로세스간에통신할수있도록해주는특수파일 그냥파이프라고하면일반적으로이름없는파이프를의미
More information<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >
웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 소켓 (Socket) (1/2) Socket 이란? 서버와클라이언트가서로특정한규약을사용하여데이터를전송하기위한방식 서버와클라이언트는소켓연결을기다렸다가소켓이연결되면서로데이터를전송 현재네트워크상에서의모든통신의근간은 Socket 이라할수있음 Page 2 1 소켓 (Socket) (2/2)
More informationMicrosoft PowerPoint - 09-CE-23-윈도우 소켓
순천향대학교컴퓨터학부이상정 1 학습내용 인터넷과 TCP/IP 프로토콜 소켓의생성과해제 소켓주소표현 연결지향소켓프로그래밍 순천향대학교컴퓨터학부이상정 2 인터넷과 TCP/IP 프로토콜 순천향대학교컴퓨터학부이상정 3 인터넷구조의프로토콜계층 인터넷구조의프로토콜계층 응용계층 (application layer) 응용서비스제공 http, ftp, smtp, telnet,
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 informationPowerPoint 프레젠테이션
Network Programming Jo, Heeseung Network 실습 네트워크프로그래밍 멀리떨어져있는호스트들이서로데이터를주고받을수있도록프로그램을구현하는것 파일과는달리데이터를주고받을대상이멀리떨어져있기때문에소프트웨어차원에서호스트들간에연결을해주는장치가필요 이러한기능을해주는장치로소켓이라는인터페이스를많이사용 소켓프로그래밍이란용어와네트워크프로그래밍이랑용어가같은의미로사용
More information슬라이드 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 informationvi 사용법
네트워크프로그래밍 6 장과제샘플코드 - 1:1 채팅 (udp 버전 ) 과제 서버에서먼저 bind 하고그포트를다른사람에게알려줄것 클라이언트에서알려준포트로접속 서로간에키보드입력을받아상대방에게메시지전송 2 Makefile 1 SRC_DIR =../../common 2 COM_OBJS = $(SRC_DIR)/addressUtility.o $(SRC_DIR)/dieWithMessage.o
More informationThe 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 informationThe 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 informationMicrosoft 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 informationNetwork Programming
Part 3 Socket Programming for Content Delivery in Multimedia Networks (Unix 기반 ) 유닉스소켓시스템콜 BSD 소켓 API의소개 IP 주소변환설명 소켓을이용한클라이언트및서버프로그램작성방법소개 유닉스시스템콜 signal()
More informationMicrosoft PowerPoint - 06-CompSys-16-Socket.ppt
소켓시스템콜소개 TCP 클라이언트 / 서버프로그래밍 signal(), fork() 시스템콜 TCP 클라이언트 / 서버프로그래밍예 talk_client.c, talk_server.c UDP 클라이언트 / 서버프로그래밍 순천향대학교컴퓨터학부이상정 1 소켓시스템콜소개 순천향대학교컴퓨터학부이상정 2 소켓 (socket) 소켓은 TCP/IP 프로토콜을이용하기위한시스템콜인터페이스
More informationNetwork Programming
Part 3 Socket Programming (Unix 기반 ) 목차 Socket 의개념 BSD 소켓 API 의소개 Socket 생성및 ID IP 주소변환설명 Socket 사용형태 소켓을이용한클라이언트및서버프로그램작성방법소개 채칭프로그램작성
More information10. 시스템 프로그래밍
네트워크프로그래밍 Unix Network Programming, 2nd Ed., W. Richard Stevens, Prentice Hall PTR, 1999. 한국어판 Unix Network Programming, Stevens 저, 김치하, 이재용역, 대영사, 1991. 컴퓨터네트워크프로그래밍, 개정판, 김화종, 홍릉과학출판사, 2000. 10.7 소켓
More informationSYN 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 informationMicrosoft 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 informationMicrosoft PowerPoint - 15-EmbedSW-10-Socket
10. 소켓개요 TCP 클라이언트 / 서버프로그래밍절차 오드로이드 I/O 소켓프로그램예 순천향대학교컴퓨터공학과이상정 1 소켓 (Socket) 운영체제복습 소켓 (socket) 은통신의극점 (endpoint) 을정의 소켓은 IP 주소와포트번호두가지를접합 (concatenate) 해서구별 두프로세스의네트워크통신에각각하나씩두개의소켓이필요 순천향대학교컴퓨터공학과 2
More informationMicrosoft 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 informationThe 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 informationMicrosoft 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 informationThe 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슬라이드 1
23. Sockets Input/Output Operations 일반대학원컴퓨터과학과 최윤기 (filterk7@gmail.com) Connection-oriented Model Client-Server 간통싞전에, 미리핚쌍의소켓을연결해두는개념. socket() 의 type argument 에 SOCK_STREAM 으로지정. TCP(Transmission Control
More informationMicrosoft 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 informationChapter 4 UDP 소켓 사용법
Chapter 4 UDP 소켓사용법 개요 소켓이란 (Unix 소켓 ) 소켓의구조 소켓의유형 UDP 에대한이해 교재 Chapter 4.1 UDP 클라이언트 교재 Chapter 4.2 UDP 서버 교재 Chapter 4.3 UDP 소켓을이용한 송신및수신 소켓이란? Socket 은통신을위한끝점 (endpoint) 을생성하여파일에대한 open 과유사한방식으로기술자
More information9장 윈도우 소켓 프로그래밍
윈도우소켓프로그래밍 _A_2015 버전 IT CookBook, 윈도우 API 프로그래밍 한빛미디어의윈도우 API 프로그래밍, 윈도우네트워크프로그래밍, 혜지원 API programming 을참조함! Updated 2015.11.22 1 학습목표 TCP/IP 프로토콜의개념을이해하고, 윈도우프로그래밍을이용한간단한채팅프로그램을작성하여이해도를높인다. 내용 소켓연결 메시지교환
More informationMicrosoft PowerPoint - 03-TCP Programming.ppt
Chapter 3. - Socket in Java - 목차 소켓소개 자바에서의 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 에코프로그램 - EchoServer 에코프로그램 - EchoClient Q/A 1 1 소켓소개 IP,, and Socket 포트 (): 전송계층에서통신을수행하는응용프로그램을찾기위한주소 소켓 (Socket):
More informationIPv6 적용
IPv6 적용 1 IPv6 기본규격 2 IPv6 Basic header 3 IPv6 - Extension Headers (1) Hop-by-Hop Options (0) RSVP, PIM/MLD, etc. Routing (43) Source Routing, MIPv6 Fragment (44) Encapsulating Security Payload (50) IPsec
More informationThe Pocket Guide to TCP/IP Sockets: C Version
인터넷프로토콜 5 장 데이터송수신 (3) 1 파일전송메시지구성예제 ( 고정크기메시지 ) 전송방식 : 고정크기 ( 바이너리전송 ) 필요한전송정보 파일이름 ( 최대 255 자 => 255byte 의메모리공간필요 ) 파일크기 (4byte 의경우최대 4GB 크기의파일처리가능 ) 파일내용 ( 가변길이, 0~4GB 크기 ) 메시지구성 FileName (255bytes)
More information<43B7CE20BECBBEC6BAB8B4C220BCD2C4CFC7C1B7CEB1D7B7A1B9D62E687770>
C 로알아보는 소켓프로그래밍 이현환 (NOON) haonun@gmail.com http://noon.tistory.com Hacking Study Grup E.Y.E -------------------------------------------------------------------- 목차 --------------------------------------------------------------------
More information3. 다음장에나오는 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 information61 62 63 64 234 235 p r i n t f ( % 5 d :, i+1); g e t s ( s t u d e n t _ n a m e [ i ] ) ; if (student_name[i][0] == \ 0 ) i = MAX; p r i n t f (\ n :\ n ); 6 1 for (i = 0; student_name[i][0]!= \ 0&&
More information2009년 상반기 사업계획
메모리매핑 IT CookBook, 유닉스시스템프로그래밍 학습목표 통신프로그램이무엇인지이해한다. 메모리매핑을이용한 IPC 기법을이해한다. 메모리매핑함수를사용해프로그램을작성할수있다. 2/20 목차 메모리매핑의개념 메모리매핑함수 메모리매핑해제함수 메모리매핑의보호모드변경 파일의크기확장 매핑된메모리동기화 데이터교환하기 3/20 메모리매핑의개념 메모리매핑 파일을프로세스의메모리에매핑
More information<4D F736F F F696E74202D FB8DEB8F0B8AE20B8C5C7CE205BC8A3C8AF20B8F0B5E55D>
학습목표 통신프로그램이무엇인지이해한다. 을이용한 IPC 기법을이해한다. 함수를사용해프로그램을작성할수있다. IT CookBook, 유닉스시스템프로그래밍 2/20 목차 의개념 함수 해제함수 의보호모드변경 파일의크기확장 매핑된메모리동기화 데이터교환하기 의개념 파일을프로세스의메모리에매핑 프로세스에전달할데이터를저장한파일을직접프로세스의가상주소공간으로매핑 read, write
More information<43B7CE20BECBBEC6BAB8B4C C5EBBDC52E687770>
C 로알아보는 UDP 통신 이현환 (NOON) haonun@gmail.com http://noon.tistory.com Hacking Study Grup E.Y.E -------------------------------------------------------------------- 목차 --------------------------------------------------------------------
More information<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>
리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1
More information슬라이드 1
/ 유닉스시스템개요 / 파일 / 프로세스 01 File Descriptor file file descriptor file type unix 에서의파일은단지바이트들의나열임 operating system 은파일에어떤포맷도부과하지않음 파일의내용은바이트단위로주소를줄수있음 file descriptor 는 0 이나양수임 file 은 open 이나 creat 로 file
More information<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>
i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,
More informationMicrosoft 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<4D F736F F D2034C0E52D554E495820BCD2C4CF20C0C0BFEB20C7C1B7CEB1D7B7A1B9D6>
4. UNIX 소켓응용프로그래밍 4.1 소켓의동작모드 소켓의동작모드 blocking, non-blocking, 그리고비동기 (asynchronous) 모드 소켓을처음생성하면 blocking 모드의소켓이생성 blocking 모드소켓 어떤소켓관련시스템콜을호출하였을때네트웍시스템 ( 즉, TCP/IP) 이동작을완료할때까지응용프로세스가멈추어있게 (block) 되는소켓
More informationMicrosoft PowerPoint PythonGUI-socket
: 채팅프로그래밍 순천향대학교컴퓨터공학과 이상정 순천향대학교컴퓨터공학과 1 학습내용 인터넷구조 인터넷구성요소 인터넷주소 클라이언트 / 서버구조 소켓프로그래밍소개 파이썬소켓프로그래밍 TCP 클라이언트 / 서버프로그래밍 스레드소개 파이썬스레드 채팅클라이언트 / 서버프로그램 순천향대학교컴퓨터공학과 2 네트워크요소 네트워크가장자리 (edge) 호스트 : 클라이언트와서버
More informationPowerPoint 프레젠테이션
FLIGHTGEAR Jo, Heeseung INDEX 1. FlightGear 실행 2. FlightGear Http 통신 3. FlightGear Protocol 구조 4. FlightGear와통신하기위한 Client Server간의구조 5. FlightGear UDP통신실행예제 2 FLIGHTGEAR 실행 FlightGear http://flightgear.org
More informationPowerPoint 프레젠테이션
FlightGear Jo, Heeseung FlightGear 2.10 FlightGear 에서 Http, UDP 프로토콜을실행할수있는환경을설명한문서 1. FlightGear 실행 2. FlightGear Http 통신 3. FlightGear Protocol 구조 4. FlightGear 와통신하기위한 Client Server 간의구조 5. FlightGear
More informationMicrosoft 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 informationFlightGear 2.10
FlightGear 2.10 FlightGear project 를원할히진행할수있도록설명되있는기술문서입니다. FlightGear 는윈도우, Linux 환경상에서구동할수있는비행 Simulator 프로그램입니다. 2013-05-18 Kim Tae Hoon Documentaion1.1v Language:Ko_kr FlightGear 2.10 1. FlightGear
More informationMicrosoft PowerPoint - all_CDSP_2(2009).ppt [호환 모드]
Contents Delivery Programming 2009 년 2 학기 숙명여자대학교정보과학부 멀티미디어과학전공 윤용익 yiyoon@sookmyung.ac.kr 강의목차 1 주 : 강의소개및 Part 1- Contents Delivery
More informationPowerPoint 프레젠테이션
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 informationhd132x_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 information3. 다음장에나오는 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슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More informationThe 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 informationMicrosoft 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자바-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 informationMicrosoft 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 informationMicrosoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100
2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack
More information0x00 Contents 0x About Nickster 0x Analaysis 0x Exploit
Defcon CTF 17 th Nickster Report StolenByte(Son Choong-Ho) http://stolenbyte.egloos.com thscndgh_4@hotmail.com WOWHACKER 2009. 08. 09 0x00 Contents 0x01 ------------- About Nickster 0x02 -------------
More informationPowerPoint 프레젠테이션
Web server porting 1 Jo, Heeseung 웹서버포팅 HBE-SM5-S4210 를임베디드웹서버로사용할수있도록웹서버를올리는작업 임베디드서버에널리쓰이는웹서버들중 GoAhead 라는웹서버를포팅 CGI 프로그램을이용하여웹에서 HBE-SM5-S4210 의 LED, 7- Segment, TextLCD 를제어실습 2 Goahead webserver 소스를다운받거나제공된
More informationuntitled
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 information11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
More information<4D F736F F F696E74202D20B3D7C6AEBFF6C5A9C7C1B7CEB1D7B7A1B9D65F FBCD2C4CF5FC3A4C6C35FBFA1C4DA2E BC8A3C8A
학습목표 자바의소켓포트의개념을이해한다 네트워크프로그래밍 클라이언트통신프로그램의구조를이해한다 소켓과클라이언트소켓을구분하여이해한다 11 주소켓 - 애코김문정 tops@u1.ac.kr 2 포트 (port) 데이터송수신창구 0~65536 (0~1024 : well-known port) ServerSocket 클래스 ( 소켓 ) ServerSocket 클래스에사용되는클래스
More informationMicrosoft Word - KPMC-400,401 SW 사용 설명서
LKP Ethernet Card SW 사용설명서 Version Information Tornado 2.0, 2.2 알 림 여기에실린내용은제품의성능향상과신뢰도의증대를위하여예고없이변경될수도있습니다. 여기에실린내용의일부라도엘케이일레븐의사전허락없이어떠한유형의매체에복사되거나저장될수없으며전기적, 기계적, 광학적, 화학적인어떤방법으로도전송될수없습니다. 엘케이일레븐경기도성남시중원구상대원동
More information제1장 Unix란 무엇인가?
1 12 장파이프 2 12.1 파이프 파이프원리 $ who sort 파이프 3 물을보내는수도파이프와비슷 한프로세스는쓰기용파일디스크립터를이용하여파이프에데이터를보내고 ( 쓰고 ) 다른프로세스는읽기용파일디스크립터를이용하여그파이프에서데이터를받는다 ( 읽는다 ). 한방향 (one way) 통신 파이프생성 파이프는두개의파일디스크립터를갖는다. 하나는쓰기용이고다른하나는읽기용이다.
More informationMicrosoft 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이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2
제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.
More information[ 마이크로프로세서 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<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>
Power Java 제 25 장네트워크프로그래밍 이번장에서학습할내용 네트워크프로그래밍의개요 URL 클래스 TCP를이용한통신 TCP를이용한서버제작 TCP를이용한클라이언트제작 UDP 를이용한통신 자바를이용하여서 TCP/IP 통신을이용하는응응프로그램을작성하여봅시다. 서버와클라이언트 서버 (Server): 사용자들에게서비스를제공하는컴퓨터 클라이언트 (Client):
More information리눅스 취약점대응방안권고 / KISA 취약점점검팀 영향받는플랫폼 OS, FAQ 추가 개요 미국보안회사 에의해 시스템의 라이브러리 의특정함수에서임의코드를실행할수있는취약점이공개 해당취약점은 CVE 지정, 도메인네임을
리눅스 취약점대응방안권고 15. 01. 29 / KISA 취약점점검팀 15. 01. 30 영향받는플랫폼 OS, FAQ 추가 개요 미국보안회사 에의해 시스템의 라이브러리 의특정함수에서임의코드를실행할수있는취약점이공개 해당취약점은 CVE-2015-0235 지정, 도메인네임을 IP로변환하는기능이포함된서비스 ( 메일, 웹등 ) 들은해당취약점에영향을받을수있음 취약점상세분석
More information학번 : 이름 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 informationSena Technologies, Inc. HelloDevice Super 1.1.0
HelloDevice Super 110 Copyright 1998-2005, All rights reserved HelloDevice 210 ()137-130 Tel: (02) 573-5422 Fax: (02) 573-7710 E-Mail: support@senacom Website: http://wwwsenacom Revision history Revision
More informationMicrosoft PowerPoint - chap03-변수와데이터형.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운영체제실습_명령어
운영체제실습 리눅스네트워크기본개념및설정 서 기옥 Contents 네트워크용어정의 IP 주소 네트워크기본명령어 네트워크관리명령어 네트워크설정파일 telnet 서버설정 네트워크용어정의 네트워크 (Network) : 전자적으로데이터를주고받기위한목적으로연결된 2 개이상의컴퓨터시스템 IP 주소와 Ethernet 주소 IP 주소 : 네트워크에연결된시스템을구분하는소프트웨어적인주소
More informationMicrosoft PowerPoint C-구조체
순천향대학교컴퓨터공학과이상정 1 학습내용 구조체 (structure) 구조체선언, 멤버참조 구조체초기화, 인수전달 자기참조구조체, 연결리스트 공용체 (union) 비트필드 (bit field) 순천향대학교컴퓨터공학과 2 구조체란? 구조체는하나의변수명으로여러개의상이한자료를한꺼번에다루려고할때사용 구조체선언 struct 태그명 ; 멤버리스트 순천향대학교컴퓨터공학과
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More informationbn2019_2
arp -a Packet Logging/Editing Decode Buffer Capture Driver Logging: permanent storage of packets for offline analysis Decode: packets must be decoded to human readable form. Buffer: packets must temporarily
More informationchap7.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 informationPowerPoint 프레젠테이션
Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi
More informationChapter #01 Subject
Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned
More informationMicrosoft PowerPoint - 09-CE-24-채팅 프로그램
순천향대학교컴퓨터학부이상정 1 학습내용 사용자인터페이스 프로그램구성 TCP 연결설정프로그램 서버연결설정 클라이언트연결설정 TCP 데이터송수신 순천향대학교컴퓨터학부이상정 2 사용자인터페이스 순천향대학교컴퓨터학부이상정 3 1:1 채팅프로그램 한프로그램이동시에서버와클라이언트로동작 프로그램시작시서버로동작 서버소켓생성하고상대방접속요청대기 채팅을위한연결요청시클라이언트로동작
More informationUnix Network Programming Chapter 4. Elementary TCP Sockets
Unix Network Programming Chapter 14. Advanced I/O Functions 광운대학교컴퓨터과학과 정보통신연구실 석사과정안중현 14.1 Introduction 이장에서소개되고있는내용 I/O operation 에서 timeout 을설정하는세가지방법 세가지 Read/Write 관련함수 recv/send readv/writev recvmsg/sendmsg
More information4. What will be the output of this program? Explain results for each variable and each thread. #include "apue.h" int var=1; pthread_mutex_t lock; void
학번 : 이름 : 1. What will be the output of this program? assumption: parent's process id=10100, child process id=10101. #include "apue.h" char buf[] = "a write to stdout\n"; int main(void) int var; /* automatic
More information문서개정이력 개정번호개정사유및내용개정일자 1.0 최초작성 본문서는원문작성자 (Peter Van Eeckhoutte) 의허가하에번역및배포하는문서로, 원문과관련된모든내용의저작권은 Corelan에있으며, 추가된내용에대해서는 ( 주 ) 한국정보보호교육센터에
문서번호 13-VN-06 공격코드작성따라하기 ( 원문 : 공격코드 Writing Tutorial 4) 2013.1 작성자 : ( 주 ) 한국정보보호교육센터서준석주임연구원 오류신고및관련문의 : nababora@naver.com 문서개정이력 개정번호개정사유및내용개정일자 1.0 최초작성 2013.01.31 본문서는원문작성자 (Peter Van Eeckhoutte)
More information<4D F736F F F696E74202D FC7C1B7CEBCBCBDBA20BBFDBCBAB0FA20BDC7C7E0205BC8A3C8AF20B8F0B5E55D>
학습목표 프로세스를생성하는방법을이해한다. 프로세스를종료하는방법을이해한다. exec함수군으로새로운프로그램을실행하는방법을이해한다. 프로세스를동기화하는방법을이해한다. 프로세스생성과실행 IT CookBook, 유닉스시스템프로그래밍 2/24 목차 프로세스생성 프로세스종료함수 exec 함수군활용 exec 함수군과 fork 함수 프로세스동기화 프로세스생성 [1] 프로그램실행
More information2009년 상반기 사업계획
프로세스생성과실행 IT CookBook, 유닉스시스템프로그래밍 학습목표 프로세스를생성하는방법을이해한다. 프로세스를종료하는방법을이해한다. exec함수군으로새로운프로그램을실행하는방법을이해한다. 프로세스를동기화하는방법을이해한다. 2/24 목차 프로세스생성 프로세스종료함수 exec 함수군활용 exec 함수군과 fork 함수 프로세스동기화 3/24 프로세스생성 [1]
More information