Microsoft PowerPoint - 15-EmbedSW-10-Socket
|
|
- 경훈 금
- 7 years ago
- Views:
Transcription
1 10. 소켓개요 TCP 클라이언트 / 서버프로그래밍절차 오드로이드 I/O 소켓프로그램예 순천향대학교컴퓨터공학과이상정 1 소켓 (Socket) 운영체제복습 소켓 (socket) 은통신의극점 (endpoint) 을정의 소켓은 IP 주소와포트번호두가지를접합 (concatenate) 해서구별 두프로세스의네트워크통신에각각하나씩두개의소켓이필요 순천향대학교컴퓨터공학과 2
2 소켓 (Socket) 네트워크복습 프로세스는소켓 (socket) 을통해네트워크로메시지를송수신 소켓은호스트의애플리케이션계층과트랜스포트계층간의인터페이스 프로세스는집 (house), 소켓은출입구 (door) 에비유 송신프로세스는출입구 ( 소켓 ) 바깥네트워크로메시지를밀어냄 소켓은애플리케이션과네트워크사이의 API(Application Programming Interface) 순천향대학교컴퓨터공학과 3 소켓개요 순천향대학교컴퓨터공학과이상정 4
3 소켓의정의 소켓 (socket) 은 TCP/IP 를이용하는 API 1982년 BSD(Berkeley Software Distribution) 유닉스 4.1에서처음소개 윈도우소켓 ( 윈속 ), 자바소켓 BSD 소켓과호환성 프로그램코드의호환성이아니라서로통신을할수있는통신프로토콜의호환성 소켓은소프트웨어로작성된통신접속점 응용프로그램은소켓을통하여통신망으로 IP 패킷을송수신 순천향대학교컴퓨터공학과이상정 5 소켓인터페이스위치 순천향대학교컴퓨터공학과이상정 6
4 소켓번호 리눅스파일기술자 (file descriptor) 파일을새로열면 (open) int 타입의파일기술자를리턴 프로그램에서이파일을액세스할때해당파일기술자를사용 파일기술자는기술자테이블 (descriptor table) 의 index 번호 소켓기술자 (socket descriptor) 소켓을개설하면파일기술자와똑같은기능을하는소켓기술자가리턴 응용프로그램에서이소켓을통하여목적지호스트와패킷을송수신할때이소켓기술자 ( 소켓번호 ) 를사용 리눅스에서는파일기술자와소켓기술자가같은기술자테이블사용 순천향대학교컴퓨터공학과이상정 7 소켓, 파일기술자테이블 순천향대학교컴퓨터공학과이상정 8
5 소켓번호, 포트번호, IP 주소의관계 순천향대학교컴퓨터공학과이상정 9 서비스와포트번호 /etc/services 파일에응용서비스와대응되는포트번호가기술 $ more /etc/services 순천향대학교컴퓨터공학과이상정 10
6 소켓의생성 (1) 소켓을이용하는네트워크프로그램에서상대방세션과 IP 패킷을주고받기위해서는다음정보를기술 1. 통신에사용할프로토콜 (TCP 또는 UDP) 2. 자신의 IP 주소 3. 자신의포트번호 4. 상대방의 IP 주소 5. 상대방의포트번호 순천향대학교컴퓨터공학과이상정 11 소켓의생성 (2) #include <sys/socket.h> int socket( int domain, /* 프로토콜체계 */ int type, /* 서비스타입 */ int protocol /* 소켓에서사용할프로토콜 */ ); domain : PF_INET ( 인터넷프로토콜체계사용 ) PF_INET6 (IPv6 프로토콜체계사용 ) PF_UNIX ( 유닉스방식의프로토콜체계사용 ) PF_NS (XEROX 네트워크시스템의프로토콜체계사용 ) type : SOCK_STREAM (TCP 즉, 스트림방식의소켓생성 ) SOCK_DGRAM (UDP 즉, 데이터그램방식의소켓생성 ) SOCK_RAW (raw 모드의소켓생성 ) protocol은구체적인프로토콜을선택할때사용하는데대부분의응용프로그램에서는 0으로지정 순천향대학교컴퓨터공학과이상정 12
7 소켓생성예 socket() 시스템호출사용예 두개의소켓과파일을생성 소켓번호와파일기술자를출력 $mkdir~/socket $cdsocket $ gedit open_socket.c c $ cc o open_socket open_socket.c $./open_socket 순천향대학교컴퓨터공학과이상정 13 임베디드 // open_socket.c 소프트웨어 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> /* 소켓시스템호출에필요한상수선언 */ #include <sys/stat.h> /* 파일의상태에대한데이터선언 */ #include <sys/socket.h> /* 소켓시스템호출선언 */ #include <fcntl.h> /* open에필요한 flag 선언 */ #include <unistd.h> int main() { int fd1, fd2, sd1, sd2; /* 파일및소켓번호 */ fd1 = open("/etc/passwd", O_RDONLY, 0); /* 파일열기 */ printf("/etc/passwd's file descriptor = %d n", fd1); sd1 = socket(pf_inet, SOCK_STREAM, STREAM 0); /* 스트림형소켓열기 */ printf("stream socket descriptor = %d n", sd1); sd2 = socket(pf_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); 순천향대학교 컴퓨터공학과이상정 14
8 헤더파일 네트워크프로그램에서자주사용되는헤더파일 /usr/include stdio.h, string.h, time.h, netdb.h, errno.h, fcntl.h, signal.h C 언어에서기본적으로사용되는헤더파일이있다. /usr/include/sys socket.h, types.h, ipc.h, msg.h, proc.h, sem.h, stats.h 등 시스템과관련된헤더파일 /usr/include/netinet in.h, arp.h, igmp.h, ip.h, tcp.h, udp.h 등 인터넷관련헤더파일 순천향대학교컴퓨터공학과이상정 15 소켓주소구조체 (1) 통신객체 ( 클라이언트또는서버 ) 의구체적인주소를표현하기위해서는다음을지정해야함 주소체계 (address family) IP 주소 포트번호 위의세가지정보를소켓주소 (socket address) 라고하며소켓주소를담을구조체 sockaddr 을다음과같이정의 struct sockaddr { ; ushortsa u_short sa_family; /* 주소체계 */ char sa_data[14]; /* 주소 */ 순천향대학교컴퓨터공학과이상정 16
9 소켓주소구조체 (2) sockaddr 소켓주소구조체에 IP 주소, 포트번호등을직접쓰거나읽기가불편 인터넷프로그래밍에서는 4바이트의 IP주소와 2바이트의포트번호를구분하여액세스할수있는인터넷전용소켓주소구조체sockaddr_in을주로사용 struct in_addr { u_long s_addr; /* 32비트의 IP 주소를저장할구조체 */ ; struct sockaddr_in { short sin_family; /* 주소체계 */ u_short sin_port; /* 16비트포트번호 */ struct in_addr sin_addr; /* 32비트 IP 주소 */ char sin_zero[8]; /* 전체크기를 16 바이트로맞추기위한 dummy */ ; 순천향대학교컴퓨터공학과이상정 17 소켓주소구조체 (3) 주소체계 (sin_family) 값 sin_family : AF_INET ( 인터넷주소체계 ) AF_UNIX ( 유닉스파일주소체계 ) AF_NS (XEROX 주소체계 ) 소켓을개설할때프로토콜을 PF_INET 즉, 인터넷으로지정한경우에는주소체계로 AF_INET만을사용 두상수 PF_INET 과 AF_INET 의값은모두 2 로같으므로편의상이두표현을혼용 순천향대학교컴퓨터공학과이상정 18
10 IP 주소변환 #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> const char *inet_ntop(int af, const void *src, char *dst, size_t cnt ); /* IP 주소 (4 바이트정수 ) -> dotted d decimal( 문자열 ) */ int inet_pton(int af, const char *src, void *dst); /* dotted decimal( 문자열 ) -> IP 주소 (4 바이트정수 ) */ 순천향대학교컴퓨터공학과이상정 19 IP 주소변환예 dotted decimal 로표현된주소 ( 예 : ) ) 를명령 행인수로입력 4바이트의 IP 주소 (0xb90cbc0) 로화면에출력 IP 주소를다시 dotted decimal 주소로출력 $cd~/socket $ gedit ascii_ip.c i $ cc o ascii_ip ascii_ip.c $./ascii_ip 순천향대학교컴퓨터공학과이상정 20
11 임베디드 // ascii_ip.c 소프트웨어 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> int main(int argc, char *argv[]) { struct in_addr inaddr; /* 32 비트 IP 주소구조체 */ char buf[20]; if(argc < 2) { printf(" 사용법 : %s IP 주소 (dotted decimal) ", argv[0]); exit(0); printf("* 입력한 dotted decimal IP 주소 : %s n", argv[1]); inet_pton(af_inet, argv[1], &inaddr.s_addr); printf(" inet_pton(%s) = 0x%X n", argv[1], inaddr.s_addr); inet_ntop(af_inet, &inaddr.s_addr, buf, sizeof(buf)); printf(" inet_ntop(0x%x) t = %s n", inaddr.s_addr, buf); return 0; 순천향대학교컴퓨터공학과이상정 21 TCP 클라이언트 / 서버프로그래밍절차 순천향대학교컴퓨터공학과이상정 22
12 TCP 클라이언트서버프로그램개요 순천향대학교컴퓨터공학과이상정 23 TCP 동작 클라이언트 서버 connect() 호출 SYN(X) ---> ACK(Y+1) -- connect() 리턴 -- listen(), accept() 호출 ACK(X+1), SYN(Y) accept() 리턴 순천향대학교컴퓨터공학과이상정 24
13 TCP 서버프로그램- 소켓생성 클라이언트 / 서버통신시프로그램이먼저수행되고있어야함 socket() 을호출하여통신에사용할소켓을생성 socket(pf_inet, SOCK_STREAM,0); 순천향대학교컴퓨터공학과이상정 25 TCP 서버프로그램- 소켓과주소연결 소켓번호와자신의소켓주소 ( 자신의 IP 주소 + 자신의포트번호 ) 를 bind() 함수로서로연결 int bind( int s, /* 소켓번호 */ struct sockaddr *addr, /* 서버자신의소켓주소구조체포인터 */ int len); /* *addr 구조체의크기 */ 순천향대학교컴퓨터공학과이상정 26
14 TCP 서버프로그램- 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; inet_pton(af_inet, SERV_IP_ADDR, &server_addr.sin_addr); sin addr); server_addr.sin_port = htons(serv_port); /* 소켓번호와소켓주소를 bind */ bind(s, (struct sockaddr *)&server_addr, sizeof(server_addr)); 순천향대학교컴퓨터공학과이상정 27 TCP 서버프로그램 연결요청대기모드 listen() 함수를호출하여클라이언트로부터의연결요청을 기다림 소켓을단지수동대기모드 ( 수동적소켓 ) 로변환하고즉시리턴 성공시에는 0, 실패시에는 -1 리턴 int listen ( int s, /* 소켓번호 */ int log /* 연결을기다리는클라이언트의최대수 */ ); // 사용예 listen(s, 2); 순천향대학교컴퓨터공학과이상정 28
15 TCP 서버프로그램 연결요청수락 (1) accept() 함수를호출하여클라이언트로부터의연결요청수락 클라이언트에서 connect() 로연결요청을보내면이를처리하기위해서서버는 accept() 를호출 accept() 의수행이성공하면접속된클라이언트와의통신에사용할새로운소켓이만들어지고이소켓번호가리턴되며, 실패시에는 -1이리턴 서버는이클라이언트와통신하기위하여 accept() 가리턴한소켓번호를사용 int accept ( int s, /* 소켓번호 */ struct sockaddr *addr, /* 연결요청을한클라이언트의소켓주소구조체 */ int *addrlen /* *addr 구조체크기의포인터 */ ); 순천향대학교컴퓨터공학과이상정 29 TCP 서버프로그램 연결요청수락 (2) 순천향대학교컴퓨터공학과이상정 30
16 TCP 데이터송수신함수 문법 인자 int send(int s, char *buf, int length, int flags) s 소켓번호 buf 전송할데이터가저장된버퍼 length buf 버퍼의크기 flags 보통 0 int write(int s, const void*buf, int length) s 소켓번호 buf 전송할데이터가저장된버퍼 length buf 버퍼의길이 int recv(int s, char *buf, int length, int flags) s 소켓번호 buf 수신데이터를저장할버퍼 length buf 버퍼의길이 flags 보통 0 int read(int s, void *buf, int length) s 소켓번호 buf 수신데이터를저장할버퍼 순천향대학교컴퓨터공학과이상정 31 length buf 버퍼의길이 소켓닫기 close() 는클라이언트나서버중누구나먼저호출할수있음 송신버퍼에남아서아직전송되지않은데이터가모두전달된후 TCP 연결종료 순천향대학교컴퓨터공학과이상정 32
17 TCP 클라이언트 / 서버프로그램개요 순천향대학교컴퓨터공학과이상정 33 TCP 클라이언트프로그램 socket() 을호출하여통신에사용할소켓을생성 socket(pf_inet, SOCK_STREAM,0); 서버에게연결요청을보내기위하여 connect() 를호출 서버의소켓주소 ( 상대방의 IP 주소 + 상대방의포트번호 ) 구조체를만들어인수로전달 int connect ( int s, /* 서버와연결시킬소켓번호 */ const struct sockaddr *addr, /* 상대방서버의소켓주소구조체 */ int addrlen /* 구조체 *addr의크기 */ ); 클라이언트는 bind() 를사용하여포트번호를특정한값으로지정할필요가없음 클라이언트는보통시스템이자동으로배정하는포트번호를사용 순천향대학교컴퓨터공학과이상정 34
18 오드로이드 I/O 소켓프로그램예 순천향대학교컴퓨터공학과이상정 35 오드로이드 I/O 소켓프로그램 오드로이드 I/O 서버 실행시서버포트를명령행으로지정 클라이언트로부터제어명령수신 수신된명령에따라보드에연결된 IO 보드제어 IO 보드상태메시지를클라이언트에송신 호스트클라이언트 실행시서버의주소와포트를명령행으로지정 키보드로서버에제어명령입력후송신 서버로부터상태메시지를수신하여출력 제어명령 ledblink getbutton exit 순천향대학교컴퓨터공학과이상정 36 IO 보드의 LED 를 50 번토글 입력버튼의누름상태읽기 서버및클라이언트종료
19 프로그램실행예 순천향대학교컴퓨터공학과이상정 37 오드로이드 I/O 서버프로그램 서버메인프로그램, io_server.c 서버소켓개설하고연결요청기다리고수락 클라이언트명령수신하여 IO보드제어함수 (io_control()) ()) 호출 제어응답메시지를클라이언트로송신 IO 보드제어프로그램, io_usb.c 명령에따라제어코드를 IO 보드에전송 보드의상태에따른제어응답코드를리턴 헤더파일, io_server.h usbio API 프로그램, hid-libusb.c usbio C 프로그램 Makefile, io_makefile 순천향대학교컴퓨터공학과이상정 38
20 오드로이드 I/O 서버프로그램컴파일및실행 # cd /root/odroid-usbio-master/usbio/linux #viio_makefile #viio_server.h #viio_server.c # vi io_usb.c #make fio_makefile #./io_server 3000 순천향대학교컴퓨터공학과이상정 39 io_makefile # Makefile for io_server TARGET = io_server SRCS = io_server.c io_usb.c hid-libusb.c OBJS = io_server.o io_usb.o hid-libusb.o CC = gcc FLAGS =-I/usr/include/libusb-1.0/ /i /lib b -lusb-1.0 -lpthread -DDEBUG_PRINTF $(TARGET):$(OBJS) $(CC) -o $@ $(OBJS) $(FLAGS) io_server.o: io_server.h io_server.c io_usb.o: o: io_server.h io_usb.c hid-libusb.o: hid-libusb.c $(CC) -c hid-libusb libusb.c $(FLAGS) 순천향대학교컴퓨터공학과이상정 40
21 io_server.h #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 <unistd.h> #define RETBLINK 10 #define RETPRS 20 #define RETUNPRS 30 #define RETERR -1 #define MAXCMD 80 #define MAXMSG 65 // 수신명령크기 // io 보드전송데이터크기 // 오드로이드 usbio 제어함수 int io_control(char *cmd); 순천향대학교컴퓨터공학과이상정 41 io_server.c // io_server.c - target #include "io_server.h h" // 클라이언트에서명령을받아서제어 int recv_and_control(int sd); int main(int argc, char *argv[]) { struct sockaddr_in client_addr, server_addr; int listen_sock, accp_sock; int addrlen; pid_t pid; if (argc!= 2) { printf("usage: %s port n", argv[0]); exit(0); // 서버소켓생성 if((listen_sock=socket(pf_inet, SOCK_STREAM, 0)) <0) { printf("socket fail n"); exit(0); 순천향대학교컴퓨터공학과이상정 42
22 // 서버의소켓주소구조체 server_addr을 '0' 으로초기화 bzero((char *)&server_addr, sizeof(server_addr)); // server_addr을세팅 server_addr.sin_family sin = AF_INET; server_addr.sin_addr.s_addr = htonl(inaddr_any); // host-to-network 바이트변환 (4 바이트 ) server_addr.sin_port = htons(atoi( argv[1])); // host-to-network 바이트변환 (2 바이트 ) // bind() 호출 if (bind(listen_sock, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0){ printf("bind fail n"); exit(0); printf("server started. nwaiting for client.. n"); listen(listen_sock, 1); // 클라이언트연결요청수락 addrlen = sizeof(client_addr); if ((accp_sock = accept(listen_sock,(structsock (struct sockaddr *)&client_addr, &addrlen)) < 0) { printf("accept fail n"); exit(0); // 클라이언트에서명령을받아서제어 recv_and_control(accp_sock); close(listen_sock); close(accp_sock); 순천향대학교컴퓨터공학과이상정 43 // 클라이언트에서명령을받아서제어 int recv_and_control(int sd) { char buf[maxcmd]; int nbyte,retdata; char *EXIT_STRING = "exit"; while(1) { // 클라이언트에서명령수신 if ((nbyte = read(sd, buf, MAXCMD)) < 0) { printf("read fail n"); close(sd); exit(0); buf[nbyte-1] = 0; // ' n' -> 0 대체 // 화면에수신명령출력 printf("command: %s n", buf); // 종료문자열수신시에코응답후종료 if (strstr(buf, EXIT_STRING)!= NULL ) { // 클라이언트에에코응답 write(sd, buf, strlen(buf)); printf("good Goodbye. n n"); close(sd); exit(0); 순천향대학교컴퓨터공학과이상정 44
23 // 오드로이드 usbio 제어함수호출 retdata = io_control(buf); ㅣㄴ // 응답메시지클라이언트에송신 if (retdata!= RETERR) { if (retdata == RETBLINK) strcpy(buf, "Led blink OK."); else if (retdata == RETPRS) strcpy(buf, "Button pressed."); else if (retdata == RETUNPRS) strcpy(buf, "Button unpressed."); else strcpy(buf, "IO control error!"); printf("> %s n", buf); // 클라이언트에제어응답메시지전송 write(sd, buf, strlen(buf)); // while return 0; 순천향대학교컴퓨터공학과이상정 45 io_usb.c #include "io_server.h" #include "hidapi.h" // USB 장치오픈 hid_device* dev_open() { hid_device *device; device = hid_open(0x04d8, 0x003F, NULL); if (!device) printf("hid Device open failed n"); return device; // USB 장치닫기 void close_device(hid_device *device) { hid_close(device); // 지정된시간 (ms) 지연 void checkmsec(int msec) { struct timeval ts, te; long tdiff, sec, ms; gettimeofday(&ts, NULL); 순천향대학교컴퓨터공학과이상정 46
24 while(1) { gettimeofday(&te, NULL); tdiff = ( *(te.tv_sec - ts.tv_sec)) + (te.tv_usec - ts.tv_usec); ms = tdiff / 1000; if(ms > msec) break; // 오드로이드 usbio 제어함수 int io_control(char *cmd) { hid_device *device; unsigned char buf[maxmsg]; int i, ret = 0; device = dev_open(); if(!device) return -1; // 오드로이드 usbio 전송버퍼초기화 memset((void*)buf, 0x00, sizeof(buf)); 순천향대학교컴퓨터공학과이상정 47 if (strcmp("ledblink", cmd) == 0) { buf[1] = 0x80; // 0x80이면 LED 토글명령 // LED 50번토글 for (i=0; i < 50; i++) { // io 보드에제어코드전송 if (hid_write(device, buf, sizeof(buf)) == -1) { printf("!! Write error n"); close_device(device); return RETERR; checkmsec(100); // 100ms 지연 ret = RETBLINK; else if (strcmp("getbutton", cmd) == 0) { // 전송데이터의 1번째바이트가 0x81이면 // 버튼상태읽기명령 buf[0] = 0x81; buf[1] = 0x00; // 데이터전송 if (hid_write(device, buf, sizeof(buf)) == -1) { printf("!! Write error n"); ret = RETERR; 순천향대학교컴퓨터공학과이상정 48
25 else { // 데이터읽기 if (hid_read(device, buf, sizeof(buf)) == -1) { printf("!! Read error n"); ret = RETERR; // 64 바이트중 2 번째데이터가읽은데이터 if (buf[1] == 0) // 버튼누름 ret = RETPRS; else if (buf[1] == 1) // 버튼안누름 ret = RETUNPRS; printf("!! command error n"); ret = RETERR; close_device(device); return ret; 순천향대학교컴퓨터공학과이상정 49 호스트클라이언트프로그램 fork() 시스템호출 사용자의키보드입력처리그리고서버와의통신두가지일을동시에수행하기위해 fork() 시스템호출을사용하여두개의프로세스를생성 fork() 시스템호출 자식프로세스 ( 새프로세스 ) 를생성 현재프로세스의이미지를복사하여동일한프로세스를하나더생성 순천향대학교컴퓨터공학과이상정 50
26 호스트클라이언트프로그램 fork() 리턴값 fork() 호출하여자식프로세스가생성되면 fork() 는 PID 를다음과같이반환 순천향대학교컴퓨터공학과이상정 51 호스트클라이언트프로그램 fork() 시스템콜을사용하여두개의프로세스를생성 부모프로세스는사용자가입력한명령을읽어서버로전송 input_and_send() 자식프로세스는서버가응답메시지를소켓에서읽어화면에출력 recv_and_print() $cd~/socket $ gedit io_client.c $cc-oio_clientio_client.c $./io_client 순천향대학교컴퓨터공학과이상정 52
27 io_client.c // io_client.c host #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 <unistd.h> #define MAXLINE 511 char *EXIT_STRING = "exit"; int recv_and_print(int sd); int input_and_send(int sd); // 종료문자 // 상대로부터메시지수신후화면출력 // 키보드입력받고상대에게메시지전달 int main(int argc, char *argv[]) { pid_t pid; int s; struct sockaddr_in server_addr; 순천향대학교컴퓨터공학과이상정 53 // 명령문입력인자처리 if (argc!= 3) { printf("usage: %s server_ip port ", argv[0]); exit(0); // 소켓생성 if ((s = socket(pf_inet, SOCK_STREAM, 0)) < 0) { printf("client: Can't open stream socket."); exit(0); // server_addr 을 '0' 으로초기화 bzero((char *)&server_addr, sizeof(server_addr)); io_client.c // server_addr 세팅 server_addr.sin_family = AF_INET; inet_pton(af_inet, argv[1], &server_addr.sin_addr); 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."); exit(0); if ((pid = fork()) > 0) input_and_send(s); else if (pid == 0) recv_and_print(s); 순천향대학교컴퓨터공학과이상정 54 // 키보드입력받고상대에게메시지전달 // 상대로부터메시지수신후화면출력
28 close(s); return 0; // 키보드입력받고서버에게명령송신 intinput_and_send(intsd) { char buf[maxline+1]; int nbyte; while(fgets(buf, sizeof(buf), stdin)!= NULL) { //nbyte = strlen(buf); write(sd, buf, strlen(buf)); // 종료문자열입력처리 if (strstr(buf, EXIT_STRING)!= NULL ) { printf("good bye. n"); close(sd); exit(0); return 0; 순천향대학교컴퓨터공학과이상정 55 // 서버로부터응답메시지수신후화면출력 // //// int recv_and_print(int sd) { char buf[maxline+1]; int nbyte; while(1) { if ((nbyte = read(sd, buf, MAXLINE)) < 0) { printf("read fail n"); close(sd); exit(0); buf[nbyte] = 0; // 응답화면출력 printf("> >%s n %s n", buf); // 종료문자열수신시종료 if (strstr(buf, EXIT_STRING)!= NULL ) { close(sd); exit(0); return 0; 순천향대학교컴퓨터공학과이상정 56
29 과제 앞의오드로이드 I/O 소켓프로그램을수정하여아래와같은클라이언트명령을처리하도록수정 led toggle led를토글 led blink n led를 n번깜빡거림 get button 버튼의누름상태를읽음 순천향대학교컴퓨터공학과이상정 57
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 informationMicrosoft PowerPoint - 06-CompSys-16-Socket.ppt
소켓시스템콜소개 TCP 클라이언트 / 서버프로그래밍 signal(), fork() 시스템콜 TCP 클라이언트 / 서버프로그래밍예 talk_client.c, talk_server.c UDP 클라이언트 / 서버프로그래밍 순천향대학교컴퓨터학부이상정 1 소켓시스템콜소개 순천향대학교컴퓨터학부이상정 2 소켓 (socket) 소켓은 TCP/IP 프로토콜을이용하기위한시스템콜인터페이스
More information2009년 상반기 사업계획
소켓프로그래밍활용 IT CookBook, 유닉스시스템프로그래밍 학습목표 소켓인터페이스를활용한다양한프로그램을작성할수있다. 2/23 목차 TCP 기반프로그래밍 반복서버 동시동작서버 동시동작서버-exec함수사용하기 동시동작서버-명령행인자로소켓기술자전달하기 UDP 프로그래밍 3/23 TCP 기반프로그래밍 반복서버 데몬프로세스가직접모든클라이언트의요청을차례로처리 동시동작서버
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장 Unix란 무엇인가?
1 소켓 2 1 소켓 클라이언트 - 서버모델 네트워크응용프로그램 클리이언트 - 서버모델을기반으로동작한다. 클라이언트 - 서버모델 하나의서버프로세스와여러개의클라이언트로구성된다. 서버는어떤자원을관리하고클라이언트를위해자원관련서비스를제공한다. 3 소켓의종류 소켓 네트워크에대한사용자수준의인터페이스를제공 소켓은양방향통신방법으로클라이언트 - 서버모델을기반으로프로세스사이의통신에매우적합하다.
More informationPowerPoint 프레젠테이션
Network Programming Jo, Heeseung Network 실습 네트워크프로그래밍 멀리떨어져있는호스트들이서로데이터를주고받을수있도록프로그램을구현하는것 파일과는달리데이터를주고받을대상이멀리떨어져있기때문에소프트웨어차원에서호스트들간에연결을해주는장치가필요 이러한기능을해주는장치로소켓이라는인터페이스를많이사용 소켓프로그래밍이란용어와네트워크프로그래밍이랑용어가같은의미로사용
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 information제1장 Unix란 무엇인가?
1 13 장소켓 2 13.1 소켓 클라이언트 - 서버모델 네트워크응용프로그램 클리이언트 - 서버모델을기반으로동작한다. 클라이언트 - 서버모델 하나의서버프로세스와여러개의클라이언트로구성된다. 서버는어떤자원을관리하고클라이언트를위해자원관련서비스를제공한다. 3 소켓의종류 소켓 네트워크에대한사용자수준의인터페이스를제공 소켓은양방향통신방법으로클라이언트 - 서버모델을기반으로프로세스사이의통신에매우적합하다.
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 informationvi 사용법
네트워크프로그래밍 6 장과제샘플코드 - 1:1 채팅 (udp 버전 ) 과제 서버에서먼저 bind 하고그포트를다른사람에게알려줄것 클라이언트에서알려준포트로접속 서로간에키보드입력을받아상대방에게메시지전송 2 Makefile 1 SRC_DIR =../../common 2 COM_OBJS = $(SRC_DIR)/addressUtility.o $(SRC_DIR)/dieWithMessage.o
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본 강의에 들어가기 전
네트워크프로그래밍 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본 강의에 들어가기 전
1 목포해양대해양컴퓨터공학과 2 장. TCP 소켓 네트워크프로그램설계 2 목포해양대해양컴퓨터공학과 목차 제 2장 TCP 소켓 1. IPv4 TCP 클라이언트 2. IPv4 TCP 서버 3. 소켓의생성과해지 4. 주소지정 5. 소켓에연결 6. 소켓을주소에바인딩하기 7. 클라이언트의연결요청처리 8. 데이터주고받기 9. IPv6의사용 3 목포해양대해양컴퓨터공학과
More informationMicrosoft PowerPoint - 09-CE-23-윈도우 소켓
순천향대학교컴퓨터학부이상정 1 학습내용 인터넷과 TCP/IP 프로토콜 소켓의생성과해제 소켓주소표현 연결지향소켓프로그래밍 순천향대학교컴퓨터학부이상정 2 인터넷과 TCP/IP 프로토콜 순천향대학교컴퓨터학부이상정 3 인터넷구조의프로토콜계층 인터넷구조의프로토콜계층 응용계층 (application layer) 응용서비스제공 http, ftp, smtp, telnet,
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 informationPowerPoint 프레젠테이션
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 12 장파이프 2 12.1 파이프 파이프원리 $ who sort 파이프 3 물을보내는수도파이프와비슷 한프로세스는쓰기용파일디스크립터를이용하여파이프에데이터를보내고 ( 쓰고 ) 다른프로세스는읽기용파일디스크립터를이용하여그파이프에서데이터를받는다 ( 읽는다 ). 한방향 (one way) 통신 파이프생성 파이프는두개의파일디스크립터를갖는다. 하나는쓰기용이고다른하나는읽기용이다.
More information<4D F736F F D2034C0E52D554E495820BCD2C4CF20C0C0BFEB20C7C1B7CEB1D7B7A1B9D6>
4. UNIX 소켓응용프로그래밍 4.1 소켓의동작모드 소켓의동작모드 blocking, non-blocking, 그리고비동기 (asynchronous) 모드 소켓을처음생성하면 blocking 모드의소켓이생성 blocking 모드소켓 어떤소켓관련시스템콜을호출하였을때네트웍시스템 ( 즉, TCP/IP) 이동작을완료할때까지응용프로세스가멈추어있게 (block) 되는소켓
More information<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >
웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 소켓 (Socket) (1/2) Socket 이란? 서버와클라이언트가서로특정한규약을사용하여데이터를전송하기위한방식 서버와클라이언트는소켓연결을기다렸다가소켓이연결되면서로데이터를전송 현재네트워크상에서의모든통신의근간은 Socket 이라할수있음 Page 2 1 소켓 (Socket) (2/2)
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 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 informationMicrosoft PowerPoint - ch09_파이프 [호환 모드]
학습목표 파이프를이용한 IPC 기법을이해한다. 이름없는파이프를이용해통신프로그램을작성할수있다. 이름있는파이프를이용해통신프로그램을작성할수있다. 파이프 IT CookBook, 유닉스시스템프로그래밍 2/20 목차 파이프의개념 이름없는파이프만들기 복잡한파이프생성 양방향파이프활용 이름있는파이프만들기 파이프의개념 파이프 두프로세스간에통신할수있도록해주는특수파일 그냥파이프라고하면일반적으로이름없는파이프를의미
More information2009년 상반기 사업계획
파이프 IT CookBook, 유닉스시스템프로그래밍 학습목표 파이프를이용한 IPC 기법을이해한다. 이름없는파이프를이용해통신프로그램을작성할수있다. 이름있는파이프를이용해통신프로그램을작성할수있다. 2/20 목차 파이프의개념 이름없는파이프만들기 복잡한파이프생성 양방향파이프활용 이름있는파이프만들기 3/20 파이프의개념 파이프 두프로세스간에통신할수있도록해주는특수파일 그냥파이프라고하면일반적으로이름없는파이프를의미
More informationMicrosoft PowerPoint - 13 ¼ÒÄÏÀ» ÀÌ¿ëÇÑ Åë½Å 2.ppt
13 장소켓을이용한통신 (2) 소켓을이용한통신 (2) 함수 - recvfrom - sendto - uname - gethostname - gethostbyname - gethostbyaddr 1 1. 서론 소켓을사용하여비연결형모델로통신을하기위한함수와그외의함수 함수 의미 recvfrom 비연결형모델에서소켓을통해메시지를수신한다. sendto 비연결형모델에서소켓을통해메시지를송신한다.
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 information<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>
리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1
More informationPowerPoint 프레젠테이션
Socket Programming 1 Jo, Heeseung 학습목표 TCP/IP 프로토콜의기본개념 IP 주소와포트번호의개념소켓관련구조체와함수소켓을이용한통신프로그램을작성 2 TCP/IP 개요 TCP/IP 인터넷의표준프로토콜 5 계층 (4 계층 ) 으로구성 TCP 와 UDP 의차이 3 IP 주소와호스트명 IP 주소와호스트명 IP 주소 : 인터넷을이용할때사용하는주소로점
More informationThe Pocket Guide to TCP/IP Sockets: C Version
인터넷프로토콜 5 장 데이터송수신 (3) 1 파일전송메시지구성예제 ( 고정크기메시지 ) 전송방식 : 고정크기 ( 바이너리전송 ) 필요한전송정보 파일이름 ( 최대 255 자 => 255byte 의메모리공간필요 ) 파일크기 (4byte 의경우최대 4GB 크기의파일처리가능 ) 파일내용 ( 가변길이, 0~4GB 크기 ) 메시지구성 FileName (255bytes)
More information슬라이드 1
/ 유닉스시스템개요 / 파일 / 프로세스 01 File Descriptor file file descriptor file type unix 에서의파일은단지바이트들의나열임 operating system 은파일에어떤포맷도부과하지않음 파일의내용은바이트단위로주소를줄수있음 file descriptor 는 0 이나양수임 file 은 open 이나 creat 로 file
More informationMicrosoft Word - KPMC-400,401 SW 사용 설명서
LKP Ethernet Card SW 사용설명서 Version Information Tornado 2.0, 2.2 알 림 여기에실린내용은제품의성능향상과신뢰도의증대를위하여예고없이변경될수도있습니다. 여기에실린내용의일부라도엘케이일레븐의사전허락없이어떠한유형의매체에복사되거나저장될수없으며전기적, 기계적, 광학적, 화학적인어떤방법으로도전송될수없습니다. 엘케이일레븐경기도성남시중원구상대원동
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<43B7CE20BECBBEC6BAB8B4C220BCD2C4CFC7C1B7CEB1D7B7A1B9D62E687770>
C 로알아보는 소켓프로그래밍 이현환 (NOON) haonun@gmail.com http://noon.tistory.com Hacking Study Grup E.Y.E -------------------------------------------------------------------- 목차 --------------------------------------------------------------------
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 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 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 informationMicrosoft PowerPoint C-구조체
순천향대학교컴퓨터공학과이상정 1 학습내용 구조체 (structure) 구조체선언, 멤버참조 구조체초기화, 인수전달 자기참조구조체, 연결리스트 공용체 (union) 비트필드 (bit field) 순천향대학교컴퓨터공학과 2 구조체란? 구조체는하나의변수명으로여러개의상이한자료를한꺼번에다루려고할때사용 구조체선언 struct 태그명 ; 멤버리스트 순천향대학교컴퓨터공학과
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 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 informationMicrosoft PowerPoint PythonGUI-socket
: 채팅프로그래밍 순천향대학교컴퓨터공학과 이상정 순천향대학교컴퓨터공학과 1 학습내용 인터넷구조 인터넷구성요소 인터넷주소 클라이언트 / 서버구조 소켓프로그래밍소개 파이썬소켓프로그래밍 TCP 클라이언트 / 서버프로그래밍 스레드소개 파이썬스레드 채팅클라이언트 / 서버프로그램 순천향대학교컴퓨터공학과 2 네트워크요소 네트워크가장자리 (edge) 호스트 : 클라이언트와서버
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 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 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 - 03-TCP Programming.ppt
Chapter 3. - Socket in Java - 목차 소켓소개 자바에서의 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 에코프로그램 - EchoServer 에코프로그램 - EchoClient Q/A 1 1 소켓소개 IP,, and Socket 포트 (): 전송계층에서통신을수행하는응용프로그램을찾기위한주소 소켓 (Socket):
More information제1장 Unix란 무엇인가?
4 장파일 컴퓨터과학과박환수 1 2 4.1 시스템호출 컴퓨터시스템구조 유닉스커널 (kernel) 하드웨어를운영관리하여다음과같은서비스를제공 파일관리 (File management) 프로세스관리 (Process management) 메모리관리 (Memory management) 통신관리 (Communication management) 주변장치관리 (Device
More informationPowerPoint 프레젠테이션
Text-LCD Device Control - Device driver Jo, Heeseung M3 모듈에장착되어있는 Tedxt LCD 장치를제어하는 App 을개발 TextLCD 는영문자와숫자일본어, 특수문자를표현하는데사용되는디바이스 HBE-SM5-S4210 의 TextLCD 는 16 문자 *2 라인을 Display 할수있으며, 이 TextLCD 를제어하기위하여
More information임베디드시스템설계강의자료 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 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 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 informationPowerPoint 프레젠테이션
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 informationPowerPoint 프레젠테이션
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 information6주차.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 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 informationPowerPoint 프레젠테이션
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제12장 파일 입출력
제 4 장파일입출력 리눅스시스템프로그래밍 청주대학교전자공학과 한철수 1 시스템호출 (system call) 파일 (file) 임의접근 (random access) 주요학습내용 2 4.1 절 커널의역할 (kernel) 커널 (kernel) 은운영체제의핵심부분으로서, 하드웨어를운영관리하는여러가지서비스를제공함 파일관리 (File management) 디스크 프로세스관리
More information<43B7CE20BECBBEC6BAB8B4C C5EBBDC52E687770>
C 로알아보는 UDP 통신 이현환 (NOON) haonun@gmail.com http://noon.tistory.com Hacking Study Grup E.Y.E -------------------------------------------------------------------- 목차 --------------------------------------------------------------------
More information슬라이드 1
Task 통신및동기화 : Socket Chapter #13 강의목차 소켓개요 소켓관련시스템콜 네트워크라이브러리 스트림소켓을이용한프로세스통신 데이터그램소켓을이용한프로세스통신 Unix System Programming 2 소켓 (Socket) 소켓 (Socket) 개요 (1) 프로세스간의통신을위한데이터출입구 파이프도구를일반화 양방향데이터통신을지원 상호연관성이없는프로세스간에통신이가능
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 information1장. 유닉스 시스템 프로그래밍 개요
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금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More informationPowerPoint 프레젠테이션
Sensor Device Jo, Heeseung Sensor 실습 HBE-SM5-S4210 에는근접 / 가속도 / 컴파스센서가장착 각센서들을사용하기위한디바이스드라이버와어플리케이션을작성 2 근접 (Proximity) 센서 HBE-SM5-S4210 Camera Module 근접센서디바이스 근접센서는사물이다른사물에접촉되기이전에가까이접근하였는지를검출할목적으로사용 일반적으로생활에서자동문이나엘리베이터,
More informationNetwork Programming
Part 3 Socket Programming for Content Delivery in Multimedia Networks (Unix 기반 ) 유닉스소켓시스템콜 BSD 소켓 API의소개 IP 주소변환설명 소켓을이용한클라이언트및서버프로그램작성방법소개 유닉스시스템콜 signal()
More informationMicrosoft PowerPoint - 09-CE-24-채팅 프로그램
순천향대학교컴퓨터학부이상정 1 학습내용 사용자인터페이스 프로그램구성 TCP 연결설정프로그램 서버연결설정 클라이언트연결설정 TCP 데이터송수신 순천향대학교컴퓨터학부이상정 2 사용자인터페이스 순천향대학교컴퓨터학부이상정 3 1:1 채팅프로그램 한프로그램이동시에서버와클라이언트로동작 프로그램시작시서버로동작 서버소켓생성하고상대방접속요청대기 채팅을위한연결요청시클라이언트로동작
More information/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 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 information10.
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 informationNetwork Programming
Part 3 Socket Programming (Unix 기반 ) 목차 Socket 의개념 BSD 소켓 API 의소개 Socket 생성및 ID IP 주소변환설명 Socket 사용형태 소켓을이용한클라이언트및서버프로그램작성방법소개 채칭프로그램작성
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 informationMicrosoft PowerPoint - lab14.pptx
Mobile & Embedded System Lab. Dept. of Computer Engineering Kyung Hee Univ. Keypad Device Control in Embedded Linux HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착되어있다. 2 Keypad Device Driver
More informationMicrosoft PowerPoint - 09-Pipe
9. 파이프 상명대학교소프트웨어학부 파이프 시그널은이상한사건이나오류를처리하는데는이용하지만, 한프로세스로부터다른프로세스로대량의정보를전송하는데는부적합하다. 파이프 한프로세스를다른관련된프로세스에연결시켜주는단방향의통신채널 2 pipe() Usage #include int pipe(int filedes[2]); 3 < ex_1.c > #include
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 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 information<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>
#include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More information<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>
i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,
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 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<4D F736F F F696E74202D20B3D7C6AEBFF6C5A9C7C1B7CEB1D7B7A1B9D65F FBCD2C4CF5FC3A4C6C35FBFA1C4DA2E BC8A3C8A
학습목표 자바의소켓포트의개념을이해한다 네트워크프로그래밍 클라이언트통신프로그램의구조를이해한다 소켓과클라이언트소켓을구분하여이해한다 11 주소켓 - 애코김문정 tops@u1.ac.kr 2 포트 (port) 데이터송수신창구 0~65536 (0~1024 : well-known port) ServerSocket 클래스 ( 소켓 ) ServerSocket 클래스에사용되는클래스
More informationThe 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슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More information<4D F736F F F696E74202D FB8DEB8F0B8AE20B8C5C7CE205BC8A3C8AF20B8F0B5E55D>
학습목표 통신프로그램이무엇인지이해한다. 을이용한 IPC 기법을이해한다. 함수를사용해프로그램을작성할수있다. IT CookBook, 유닉스시스템프로그래밍 2/20 목차 의개념 함수 해제함수 의보호모드변경 파일의크기확장 매핑된메모리동기화 데이터교환하기 의개념 파일을프로세스의메모리에매핑 프로세스에전달할데이터를저장한파일을직접프로세스의가상주소공간으로매핑 read, write
More information좀비프로세스 2
Signal & Inter-Process Communication Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 좀비프로세스 2 좀비프로세스 (zombie process) 좀비프로세스란프로세스종료후메모리상에서사라지지않는프로세스 좀비프로세스의생성이유. 자식프로세스는부모프로세스에게실행결과에대한값을반환해야한다.
More information2009년 상반기 사업계획
메모리매핑 IT CookBook, 유닉스시스템프로그래밍 학습목표 통신프로그램이무엇인지이해한다. 메모리매핑을이용한 IPC 기법을이해한다. 메모리매핑함수를사용해프로그램을작성할수있다. 2/20 목차 메모리매핑의개념 메모리매핑함수 메모리매핑해제함수 메모리매핑의보호모드변경 파일의크기확장 매핑된메모리동기화 데이터교환하기 3/20 메모리매핑의개념 메모리매핑 파일을프로세스의메모리에매핑
More informationABC 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본 강의에 들어가기 전
C 기초특강 종합과제 과제내용 구조체를이용하여교과목이름과코드를파일로부터입력받아관리 구조체를이용하여학생들의이름, 학번과이수한교과목의코드와점수를파일로부터입력 학생개인별총점, 평균계산 교과목별이수학생수, 총점및평균을계산 결과를파일에저장하는프로그램을작성 2 Makefile OBJS = score_main.o score_input.o score_calc.o score_print.o
More informationMicrosoft 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교육지원 IT시스템 선진화
Module 16: ioctl 을활용한 LED 제어디바이스드라이버 ESP30076 임베디드시스템프로그래밍 (Embedded System Programming) 조윤석 전산전자공학부 주차별목표 ioctl() 을활용법배우기 커널타이머와 ioctl 을활용하여 LED 제어용디바이스드라이브작성하기 2 IOCTL 을이용한드라이버제어 ioctl() 함수활용 어떤경우에는읽는용도로만쓰고,
More information[ 목차 ] 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 information2009년 상반기 사업계획
소켓프로그래밍기초 IT CookBook, 유닉스시스템프로그래밍 학습목표 TCP/IP 프로토콜의기본개념을이해한다. IP 주소와포트번호의개념을이해한다. 소켓관련구조체와함수를이해한다. 소켓을이용한통신프로그램을작성할수있다. 2/42 목차 TCP/IP 개요 IP 주소와호스트명 포트번호 소켓프로그래밍기초 소켓인터페이스함수 유닉스도메인소켓예제 인터넷소켓예제 3/42 TCP/IP
More information임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 시스템호출개요 리눅스에서는사용자공간과커널공간을구분 사용자프로그램은사용자모드, 운영체제는커널모드에서수행 커널공간에대한접근은커널 ( 특권, priviledged) 모드에서가능 컴퓨팅자원 (CPU, memory, I/O 등 ) 을안전하게보호 커널수행을안전하게유지
More information9장 윈도우 소켓 프로그래밍
윈도우소켓프로그래밍 _A_2015 버전 IT CookBook, 윈도우 API 프로그래밍 한빛미디어의윈도우 API 프로그래밍, 윈도우네트워크프로그래밍, 혜지원 API programming 을참조함! Updated 2015.11.22 1 학습목표 TCP/IP 프로토콜의개념을이해하고, 윈도우프로그래밍을이용한간단한채팅프로그램을작성하여이해도를높인다. 내용 소켓연결 메시지교환
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 informationMicrosoft PowerPoint APUE(File InO)
Linux/UNIX Programming 문양세강원대학교 IT특성화대학컴퓨터과학전공 강의목표및내용 강의목표 파일의특성을이해한다. 파일을열고닫는다. 파일로부터데이터를읽고쓴다. 기타파일제어함수를익힌다. 강의내용 파일구조 (UNIX 파일은어떤구조일까?) 파일관련시스템호출 시스템호출의효율과구조 Page 2 What is a File? A file is a contiguous
More informationMicrosoft PowerPoint APUE(File InO).ppt
컴퓨터특강 () [Ch. 3] 2006 년봄학기 문양세강원대학교컴퓨터과학과 강의목표및내용 강의목표 파일의특성을이해한다. 파일을열고닫는다. 파일로부터데이터를읽고쓴다. 기타파일제어함수를익힌다. 강의내용 파일구조 (UNIX 파일은어떤구조일까?) 파일관련시스템호출 시스템호출의효율과구조 Page 2 1 What is a File? A file is a contiguous
More information1장. 유닉스 시스템 프로그래밍 개요
Unix 프로그래밍및실습 7 장. 시그널 - 과제보충 응용과제 1 부모프로세스는반복해서메뉴를출력하고사용자로부터주문을받아자식프로세스에게주문내용을알린다. (SIGUSR1) ( 일단주문을받으면음식이완료되기전까지 SIGUSR1 을제외한다른시그널은모두무시 ) timer 자식프로세스는주문을받으면조리를시작한다. ( 일단조리를시작하면음식이완성되기전까지 SIGALARM 을제외한다른시그널은모두무시
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 informationK&R2 Reference Manual 번역본
typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct
More information<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >
10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절
More informationMicrosoft PowerPoint APUE(File InO).pptx
Linux/UNIX Programming 문양세강원대학교 IT대학컴퓨터과학전공 강의목표및내용 강의목표 파일의특성을이해한다. 파일을열고닫는다. 파일로부터데이터를읽고쓴다. 기타파일제어함수를익힌다. 강의내용 파일구조 (UNIX 파일은어떤구조일까?) 파일관련시스템호출 시스템호출의효율과구조 Page 2 What is a File? A file is a contiguous
More information<4D F736F F F696E74202D FC7C1B7CEBCBCBDBA20BBFDBCBAB0FA20BDC7C7E0205BC8A3C8AF20B8F0B5E55D>
학습목표 프로세스를생성하는방법을이해한다. 프로세스를종료하는방법을이해한다. exec함수군으로새로운프로그램을실행하는방법을이해한다. 프로세스를동기화하는방법을이해한다. 프로세스생성과실행 IT CookBook, 유닉스시스템프로그래밍 2/24 목차 프로세스생성 프로세스종료함수 exec 함수군활용 exec 함수군과 fork 함수 프로세스동기화 프로세스생성 [1] 프로그램실행
More information