<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

Similar documents
The Pocket Guide to TCP/IP Sockets: C Version

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

The Pocket Guide to TCP/IP Sockets: C Version

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint 웹 연동 기술.pptx

본 강의에 들어가기 전

2009년 상반기 사업계획

제1장 Unix란 무엇인가?

Chapter 4 UDP 소켓 사용법

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

슬라이드 1

본 강의에 들어가기 전

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

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Microsoft PowerPoint PythonGUI-socket

The Pocket Guide to TCP/IP Sockets: C Version

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

The Pocket Guide to TCP/IP Sockets: C Version

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

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

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint 세션.ppt

슬라이드 1

자바-11장N'1-502

PowerPoint 프레젠테이션

슬라이드 1

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Secure Programming Lecture1 : Introduction

PowerPoint 프레젠테이션

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

Microsoft PowerPoint - Lecture_Note_2.ppt [Compatibility Mode]

vi 사용법

hd1300_k_v1r2_Final_.PDF

Microsoft Word - Network Programming_NewVersion_01_.docx

슬라이드 1

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20B3D7C6AEBFF6C5A9C7C1B7CEB1D7B7A1B9D65F FBCD2C4CF5FC3A4C6C35FBFA1C4DA2E BC8A3C8A

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]

The Pocket Guide to TCP/IP Sockets: C Version

게시판 스팸 실시간 차단 시스템

Switching

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

Microsoft PowerPoint _TCP_IP

TCP.IP.ppt

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

Microsoft PowerPoint - L4-7Switch기본교육자료.ppt

Microsoft PowerPoint APUE(Intro).ppt

Microsoft PowerPoint Predicates and Quantifiers.ppt

SMB_ICMP_UDP(huichang).PDF

The Pocket Guide to TCP/IP Sockets: C Version

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

일반적인 네트워크의 구성은 다음과 같다

歯MW-1000AP_Manual_Kor_HJS.PDF

Microsoft PowerPoint PythonGUI-network

Sena Device Server Serial/IP TM Version

bn2019_2

SYN flooding

전송계층프로토콜 TCP(Transmission Control Protocol) 전송계층에서동작하는연결지향형 (connectionoriented) 프로토콜 데이터의흐름을관리하고, 데이터가정확한지검증하며통신 쓰리웨이핸드셰이킹 (three-way handshaking) 을통

Microsoft PowerPoint 유용한 PHP 함수들.ppt

1217 WebTrafMon II

학습목표 네트워크개요 TCP PORT URL/InetAddress Socket/TCP 을이용한네트워크 2

<43B7CE20BECBBEC6BAB8B4C220BCD2C4CFC7C1B7CEB1D7B7A1B9D62E687770>

PowerPoint 프레젠테이션

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

슬라이드 1

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

제1장 Unix란 무엇인가?

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

13-Java Network Programming

Microsoft PowerPoint 유용한 PHP 함수.pptx

놀이동산미아찾기시스템

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

Subnet Address Internet Network G Network Network class B networ

Table of Contents 1 Introduction Implementation Connection Process Socket 0 Open in MACRAW mode PPPoE Discovery Proces


Microsoft PowerPoint - 06-IPAddress [호환 모드]

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

본 강의에 들어가기 전

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

C++ Programming

서비스) 와서버( 관리대상서버) 간에자격증명을사용하여서로의 ID 를확인하고서로주고받는데이터를검사하고암호화하는프로세스 이다. 높은인증수준은일반적으로성능의저하를가져올수있지만높은 수준의보안과데이터무결성을제공한다. 기본값 - 관리대상서버에설정되어있는 DCOM 인증수준기본 값을

PowerPoint 프레젠테이션

Microsoft PowerPoint - 26.pptx

untitled

Chap06(Interprocess Communication).PDF

제20회_해킹방지워크샵_(이재석)

hd132x_k_v1r3_Final_.PDF

Microsoft PowerPoint - 4.스캐닝-1(11.08) [호환 모드]

Microsoft Word doc

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

10X56_NWG_KOR.indd

cam_IG.book

2. 인터네트워킹 서로떨어져있는각각의수많은네트워크들을연결하여하나의네트워크처럼연결하여사용할수있도록해주는것 3. 인터네트워킹에필요한장비 1 리피터 (Repeater) - 데이터가전송되는동안케이블에서신호의손실인감쇄 (Attenuation) 현상이발생하는데, 리피터는감쇄되는신

PowerPoint Presentation

IP 주소란? 네트워크상에존재하는컴퓨터들을구분하고, 서로를인식하기위해사용하는특수한번호. 32-bit 체계의 IPv4 와, 128-bit 체계의 IPv6 가있다. About IPv4 32-bit 의길이로이루어지는 IPv4 는 1 byte (= 8-bit) 씩 4 개로나누

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트

PowerPoint 프레젠테이션

TTA Journal No.157_서체변경.indd

Transcription:

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

소켓 (Socket) (2/2) socket() 함수 (socket_create()) int socket_create (int domain, int type, int protocol) domain: AF_INET (Internet), AF_UNIX (UNIX) 통상 AP_INET만사용함 type: SOCK_STREAM, SOCK_DGRAM, SOCK_SEQPACKET, SOCK_RAW, SOCK_RDM 통상 UDP로서 SOCK_DGRAM을, TCP로서 SOCK_STREAM만을사용함 protocol: SOL_ICMP, SOL_UDP, SOL_TCP 통상 0를입력하면됨 리턴값이 -1 이면실패 ( 그렇지않으면성공 ) Page 3 UDP (User Data Protocol) (1/3) UDP 란? 비연결형 (connectionless) 통신프로토콜로서, 비교적간단한을할때사용함 패킷에데이터를실어서보내는데데이터를보내기전에서버와연결을하기위한작업이생략됨 데이터전송에대한신뢰성을보장하지않기때문에전송중에패킷을잃어버릴수있음 UDP socket_create() 에서 type 파라미터는 SOCK_DGRAM을사용 Page 4 2

UDP (User Data Protocol) (1/3) UDP 란? 비연결형 (connectionless) 통신프로토콜로서, 비교적간단한을할때사용함 패킷에데이터를실어서보내는데데이터를보내기전에서버와연결을하기위한작업이생략됨 데이터전송에대한신뢰성을보장하지않기때문에전송중에패킷을잃어버릴수있음 UDP socket_create() 에서 type 파라미터는 SOCK_DGRAM을사용 Page 5 UDP (User Data Protocol) (2/3) UDP 수행 ( 접속 ) 절차 클라이언트 create() 서버 create() bind() sendto() recvfrom() recvfrom() sendto() Page 6 3

UDP (User Data Protocol) (3/3) Bind (socket_bind()) int socket_bind (resource socket, string address [, int port]) Receive From (socket_recvfrom()) int socket_recvfrom (resource socket, string buffer, int length, int flag, string address, int port); Send To (socket_sendto()) int socket_sendto (resource socket, string buffer, int length, int flag, string address, int port); Close (socket_close()) bool socket_close (resource socket) Page 7 UDP 프로그램예제 (1/5) UDP 프로그램예제 클라이언트는단어들을서버에전송하고, 서버에서이를정렬하여다시클라이언트에전송하는프로그램 서버사이드 : udp_server.php UDP로클라이언트에서보낸데이터를수신 (socket_recvfrom) 하고, 이를단어순으로정렬 (preg_split, sort) 한후, 다시서버로송신 (socket_sendto) 한다. 클라이언트사이드 : udp_client.php UDP로서버에단어들을송신 (socket_sendto) 하고, 서버에서정렬된순서의단어들을수신 (socket_recvfrom) 한다. Page 8 4

UDP 프로그램예제 (2/5) udp_server.php <? $addr = gethostbyname('127.0.0.1'); $port = 5090; $buf = ""; $sock = socket_create(af_inet, SOCK_DGRAM, 0); if ($sock < 0) die (strerror ($sock)); socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1); if (($ret = socket_bind ($sock, $addr, $port)) < 0) die (strerror ($ret)); do { $read = socket_recvfrom($sock, $buf, 2048, 0, $addr, $port); echo "Receive data: $buf<br>"; $temp = preg_split ("/\s+/", $buf); // 문자열분해 (space 하나이상 ) sort ($temp); for ($i = count ($temp) - 1; $i >= 0; $i--) $resp.= $temp[$i]. " "; $send = socket_sendto ($sock, $resp, strlen ($resp), 0, $addr, $port); echo "Send data: $resp<br>"; } while ($read < 0); socket_close ($sock);?> Page 9 UDP 프로그램예제 (3/5) udp_client.php <?PHP $addr = gethostbyname ('127.0.0.1'); $port = 5090; $data = "Apple Orange Banana Pear"; $buf1 = ""; $sock = socket_create (AF_INET, SOCK_DGRAM, 0); if ($sock < 0) die (strerror ($sock)); $ret = socket_sendto ($sock, $data, strlen ($data), 0, $addr, $port); echo "Send data: $data<br>"; do { $read = socket_ recvfrom ($sock, $buf1, 2048, 0, $addr, $port); } while ($read < 0); echo "Receive data: $buf1<br>"; socket_close ($sock);?> Page 10 5

UDP 프로그램예제 (4/5) 실행결과 Page 11 UDP 프로그램예제 (5/5) 주의 : php_sockets.dll 활성화할것 Page 12 6

TCP (Transmission Control Protocol) (1/5) TCP 란? 연결지향형 (connection oriented) 통신프로토콜이며, 안전한 (reliable) 데이터전송을보장해주는프로토콜 서버에서클라이언트의연결을기다리는서버소켓이있으며클라이언트는미리정해진포트를통해서서버와연결 한번연결된후에는소켓을통해데이터를계속해서송수신할수있음 전송되는데이터는신뢰성이보장되어순서에상관없이데이터를전송받아도이를재조합하여정확한데이터를보내고받을수있음 UDP와다른점은서버쪽에서연결을기다린다는것임 Page 13 TCP (Transmission Control Protocol) (2/5) TCP 란? ( 계속 ) listen() 함수를이용하여클라이언트쪽에서 socket_connect() 함수가올때까지서버는기다리고, socket_connect() 함수가도착하면 socket_accept() 를보낸후데이터전송을시작함 socket_close() 함수를이용하여연결을종료함 TCP에서 socket_create() 설정시 type 파라미터는 SOCK_STREAM을사용함 Page 14 7

TCP (Transmission Control Protocol) (3/5) TCP 수행 ( 접속 ) 절차 클라이언트 create() 서버 create() bind() connect() listen() accept() write() read() read() write() Page 15 TCP (Transmission Control Protocol) (4/5) Listen (socket_listen()): 클라이언트로부터 Connection 을기다리는역할 int socket_listen (resource socket, int backlog) Connect (socket_connect()): 클라이언트가서버와연결하기위해사용 int socket_connect (resource socket, string address [, int port]) Accept (socket_accept()): 서버쪽에서연결을받아들일때, 클라이언트로 accept 메시지를전송 int socket_accept (resource socket) Page 16 8

TCP (Transmission Control Protocol) (5/5) Read (socket_read()): 데이터를받을때사용 int socket_read (resource socket_des, string buffer, int length [, int type]) Write (socket_write()): 데이터를보낼때사용 int socket_write (resource socket_des, string &buffer, int length) Page 17 TCP 프로그램예제 (1/6) TCP 프로그램예제 ( 앞서의 UDP와마찬가지로 ) 클라이언트는단어들을서버에전송하고, 서버에서이를정렬하여다시클라이언트에전송하는프로그램 서버사이드 : tcp_server.php 소켓을생성 (socket_create) 하고, 바인딩 (socket_bind) 한후, 클라이언트의접속을기다리다 (socket_listen), 접속요청이오면수락 (socket_accept) 하고, TCP로클라이언트에서보낸데이터를수신 (socket_read) 하고, 이를단어순으로정렬 (preg_split, sort) 한후, 다시서버로송신 (socket_write) 한다. Page 18 9

TCP 프로그램예제 (2/6) 클라이언트사이드 : tcp_client.php 소켓을생성 (socket_create) 하고, 서버에접속 (socket_connect) 한후, TCP 로서버에단어들을송신 (socket_write) 하고, 서버에서정렬된순서의단어들을수신 (socket_read) 한다. Page 19 TCP 프로그램예제 (3/6) tcp_server.php <? $address = "127.0.0.1"; $port = 5071; if (($sock = socket_create (AF_INET, SOCK_STREAM, 0)) == FALSE) echo "socket_create() failed: reason:". socket_strerror(socket_last_error()). "<br>"; if(socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1) == FALSE) echo "socket_set_option() failed: reason:". socket_strerror(socket_last_error()). "<br>"; if (socket_bind ($sock, $address, $port) == FALSE) echo "socket_bind() failed: reason:". socket_strerror(socket_last_error()). "<br>"; if (socket_listen ($sock, 0) == FALSE) echo "socket_listen() failed: reason:". socket_strerror(socket_last_error()). "<br>"; if (($msgsock = socket_accept ($sock)) == FALSE) echo "socket_accept() failed: reason:". socket_strerror(socket_last_error()). "<br>"; Page 20 10

TCP 프로그램예제 (4/6) tcp_server.php ( 계속 ) if(($buf = socket_read ($msgsock, 2048)) == FALSE) echo "socket_read() failed: reason:". socket_strerror(socket_last_error()). "<br>"; echo "Receive data: $buf<br>"; $temp = preg_split ("/\s+/", $buf); sort ($temp); for ($i = count ($temp) - 1; $i >= 0; $i--) $talkback.= ($temp[$i]. " "); if(socket_write ($msgsock, $talkback, strlen ($talkback)) == FALSE) echo "socket_write() failed: reason:". socket_strerror(socket_last_error()). "<br>"; echo "Send data: $talkback<br>"; socket_ close ($msgsock); socket_close ($sock);?> Page 21 TCP 프로그램예제 (5/6) tcp_client.php <? $address = "127.0.0.1"; $service_port = 5071; $socket = socket_create (AF_INET, SOCK_STREAM, 0); if ($socket == FALSE) echo "socket_create() failed: reason:". socket_strerror(socket_last_error()). "<br>"; if(socket_connect ($socket, $address, $service_port) == FALSE) echo "connect() failed: reason:". socket_strerror(socket_last_error()). "<br>"; $in = "Apple Orange Banana Pear"; if(socket_write ($socket, $in, strlen ($in)) == FALSE) echo "connect() failed: reason:". socket_strerror(socket_last_error()). "<br>"; echo "Send data: $in<br>"; if(($out = socket_read ($socket, 2048)) == FALSE) echo "connect() failed: reason:". socket_strerror(socket_last_error()). "<br>"; echo "Receive data: $out<br>"; socket_close ($socket);?> Page 22 11

TCP 프로그램예제 (6/6) 실행결과 Page 23 Homework #12 ( 실습 #10) Page 24 12