Python Essential 세미나 1 Socket Programming 발표자 : 임민상 2001. 5. 8( 화 )

Slides:



Advertisements
Similar presentations
Python Essential 세미나 1 Python Databases Module - Part 2 (MySQL Module) 발표자 : 박영국 ( 화 )
Advertisements

목 차 Ⅰ 제도 도입 배경 및 개요 내일채움공제 사업 안내 내일채움공제 연계 지원 사업 Ⅲ Ⅱ.
제 4 장 인터넷 창병모 네트워크 구성 2 LAN(Local Area Network) LAN  근거리 통신망으로 집, 사무실, 학교 등의 건물과 같이  가까운 지역을 한데 묶는 컴퓨터 네트워크 이더넷 (Ethernet)  제록스 PARC.
AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www. nms4you.com 1 AMAN2002 추가 기능 실습 Chapter 13:
Python Socket/HTTP overmania. 목표  소켓을 이용하여 기본적인 서버 - 클라이언트 모델을 구현할 수 있다.  간단한 웹서버를 소켓을 이용하여 작성할 수 있다.
TCP 서버/클라이언트 동작 원리 - (1) TCP 서버/클라이언트 예 웹 서버 웹 클라이언트 웹 클라이언트
2 장 인터넷의 구성 및 접속.
Chapter 13 전송층 개요.
Network Lab. Yong bae, Kim
Understanding of Socket and File I/O
Asymmetric Link 분석.
Chapter 06. 프로토콜.
22 장 프로세스간 전달 : UDP와 TCP 22.1 프로세스간 전달 22.2 사용자 데이터그램 프로토콜
TCP/IP 소켓 프로그래밍 - C 버전 중에서
Dept. of Computer Engineering, Hannam Univ. Won Goo Lee
Internet Control Message Protocol (ICMP)
4장. 소켓 유형과 프로토콜 Network Lab. 이 원 구 1.
PHP 웹 프로그래밍 (PHP Web Programming) 네트워크 프로그래밍 문양세 강원대학교 IT대학 컴퓨터과학전공.
Network 네트워크 이론 및 실습 TCP / IP 4장.
Web Servers (IIS & Apache)
10. About TCP / IP SPARCS 08 우성필.
제 4장 주소변환 프로토콜 (ARP : Address Resolution Protocol)
제 18 장 TCP/IP 연결 확립과 종료 정보통신연구실.
Domain Name System (DNS)
네트워크 보안 TCP/IP 네트워크통신 개념.
Chapter 02 네트워크에 대한 이해.
4주 : 정보통신 네트워크 인터넷정보원 및 학술정보자원의 활용 담당교수 : 박 양 하 정보통신시스템 – 정보전송/처리시스템
TCP Client/Server Program
Network Lab. Seoung Hyeon, Lee
FTP 중앙대학교 안 봉 현
인터넷 주소 변환 School of Electronics and Information. Kyung Hee University.
JAVA 프로그래밍 12장 네트워킹(Networking).
17장 네트워크 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
Network Socket Programming
명품 JAVA Programming 제 16 장 네트워크.
Processing resulting output
(Web Programming & Practice)
Socket Address Structure and Byte Ordering Functions
제 14 장 도메인 네임 시스템 정보통신연구실.
Department of Computer Engineering
Socket Address Structure and Byte Ordering Functions
Chapter 8 연결형 프로토콜 서버 발표자 : SE Lab 황 성 하
Department of Computer Engineering
TCP/IP와 인터넷 제 1 장 인터넷 개요 및 역사.
TCP/IP 통신망 특론 2장 Link Layer 컴퓨터 네트워크 실험실 이희규.
Network Programming(1)
-제어문, 함수, 클래스- IS lab. 김건영 Python -제어문, 함수, 클래스- IS lab. 김건영
네트워크와 소켓 프로그래밍 Chapter 01. * 학습목표 TCP/IP 프로토콜의 동작 원리를 개관 소켓의 기본 개념을 이해
멀티 쓰레드 기반의 채팅 프로그램 문성영 김현진 학번 이름 장용하 차희진 연구제안서.
School of Electronics and Information. Kyung Hee University.
Cyclow Progress 김영훈, 김수현, 박윤아.
제8장 네트워킹 숙명여대 창병모
Transmission Control Protocol (TCP)
Internet 데이터 전송 목표: 인터넷의 개요 및 기본 내용을 살펴보고 VB에서의 데이터 전송 프로그래밍에 대하여 학습한다. 주요내용 인터넷의 개요 인터넷 데이터 전송 인터넷 프로그래밍 Winsock Client Server 프로그래밍.
User Datagram Protocol (UDP)
TCP/IP 네트워크 구조 TCP/IP 개요 TCP/IP 프로토콜 한빛미디어(주).
Chapter 16 Socket Interface.
기술가정 2학년 2학기 4.컴퓨터와 생활 > 2) 인터넷의 활용 > 1/7 인터넷이란 무엇일까.
Department of Computer Engineering
윤성우의 열혈 TCP/IP 소켓 프로그래밍 윤성우 저 열혈강의 TCP/IP 소켓 프로그래밍 개정판
Internet Computing KUT Youn-Hee Han
Internet & WWW Protocols
제 11장 User Datagram Protocol(UDP)
웹 기획 강의(8) PowerYouth.
MONSTER CAR 구정재 한석우 김재형.
Internet 유선 랜카드 A 회사 네트워크 장비 (인터넷 공유 기능 활성화)
학습내용 패킷교환방식 가상회선 패킷교환방식 데이터그램 패킷교환방식
Internet 인공지능연구실
소켓의 생성과 프로토콜의 설정 School of Electronics and Information.
Department of Computer Engineering
Presentation transcript:

Python Essential 세미나 1 Socket Programming 발표자 : 임민상 ( 화 )

Python Essential 세미나 2 ● About Socket 소켓 (Socket) 은 1982 년 BSD(Berkeley Software - Distribution) UNIX 4.1 에서 처음 소개 TCP/IP 프로토콜의 프로그래머 인터페이스 존재하는 프로세스들 사이의 대화를 가능하게 하는 프로세스간 상호 통신방식이다 양방향 (bidirectional) 한 컴퓨터 내의 ( 소켓을 사용하는 ) 모든 서버 프로세스는 별도의 포트번호를 갖는 소켓을 갖는다. About Socket 소켓의 유형 About Synchronously 소켓 프로그래밍 절차 예제 - 에코 Socketserver Module 예제 참고할만한 Module 참고자료

Python Essential 세미나 3 ● 소켓의 유형 - TCP TCP (Transport Connect Protocol) 가상회선 (Virtual circuit) - 데이터들이 신뢰할 수 있는 방식으로 차례대로 전송되고 복사되지 않는 다. 연결기반 - Client/Server 방식의 통신 가상회선의 디폴트 프로토콜 SOCK_STREAM : 스트림 방식의 소켓 생성 양방향연결에 기초한 바이트 가변길이의 스트림 About Socket 소켓의 유형 About Synchronously 소켓 프로그래밍 절차 예제 - 에코 Socketserver Module 예제 참고할만한 Module 참고자료

Python Essential 세미나 4 ● 소켓의 유형 - UDP UDP (User Datagram Protocol) 데이터그램 (Datagram) - 데이터들이 순서없이 신뢰할 수 없는 방식으로 전송된다. 비연결기반 : 전보와 비슷 신뢰성보다 속도가 더 중요한 응용들에서 사용 데이터그램의 디폴트 프로토콜 SOCK_DGRAM : 데이터그램 방식의 소켓 생성 비신뢰적 고정길이의 메시지 About Socket 소켓의 유형 About Synchronously 소켓 프로그래밍 절차 예제 - 에코 Socketserver Module 예제 참고할만한 Module 참고자료

Python Essential 세미나 5 ● About Synchronously Synchronously Class 동기적 : 각각의 클라이언트의 request 에 대해서 다음 request 가 시작되기 전에 종료가 되어야 한다 단점 : 각각의 request 가 완료시까지 처리가 오래걸리는 모델에서는 부적합 Asynchronous Class 각각의 클라이언트 request 에 대해서 각각의 process 를 발생시키거나, thread 처리하는 서버 다중 Client 를 처리 About Socket 소켓의 유형 About Synchronously 소켓 프로그래밍 절차 예제 - 에코 Socketserver Module 예제 참고할만한 Module 참고자료

Python Essential 세미나 6 ● Synchronously Class TCPServer Internet TCP 프로토콜을 사용, 연속적, 믿을만한 쌍방향 바이트 스트림을 제공 UDPServer Datagrams 를 사용, 접속을 보증하지 않으며 비신뢰성, 고정크기 메시지, 속도는 빠름 UnixStreamServer UNIX 이외의 플랫폼에서는 쓸수 없다. UnixDatagramServer UNIX 이외의 플랫폼에서는 쓸수 없다. About Socket 소켓의 유형 About Synchronously 소켓 프로그래밍 절차 예제 - 에코 Socketserver Module 예제 참고할만한 Module 참고자료

Python Essential 세미나 7 ● Asynchronous Class ThreadingTCPServer TheadingUDPServer ThreadingUnixStreamServer ThreadingUnixDatagramServer About Socket 소켓의 유형 About Synchronously 소켓 프로그래밍 절차 예제 - 에코 Socketserver Module 예제 참고할만한 Module 참고자료

Python Essential 세미나 8 ● 소켓 프로그래밍 절차 - 서버 측 1. svrsock = socket(AF_INET, SOCK_STREAM) # 스트림 방식의 소켓 객체 생성 2. 소켓을 HOST 컴퓨터의 PORT 에 연결 svrsock.bind(HOST, PORT) 3. 한번에 처리가능한 연결 수 설정. 5 까지 가능 svrsock.listen(1) 4. 클라이언트로부터 소켓 연결이 올 때 까지 대기 conn, addr = svrsock.accept() 5. 클라이언트의 connect 로부터 소켓이 연결되면 svrsock.recv(bufsize) 와 svrsock.send(string) 을 반복하며 데이터 주고 받음 6. 다 마쳤으면 소켓 종료 svrsock.close() About Socket 소켓의 유형 About Synchronously 소켓 프로그래밍 절차 예제 - 에코 Socketserver Module 예제 참고할만한 Module 참고자료

Python Essential 세미나 9 ● 소켓 프로그래밍 절차 - 클라이언트 측 1. 소켓 객체 생성 clientsock = socket(AF_INET, SOCK_STREAM) # 스트림 방식의 소켓 객체 생성 2. 소켓을 서버 컴퓨터의 특정 포트에 연결 clientsock.connect(HOST, PORT) 3. 연결 됐으면 데이터 수신 / 전송 clientsock.recv(1024) clientsock.send('Hi!') 4. 다 마쳤으면 소켓 종료 clientsock.close() About Socket 소켓의 유형 About Synchronously 소켓 프로그래밍 절차 예제 - 에코 Socketserver Module 예제 참고할만한 Module 참고자료

Python Essential 세미나 10 ● 소켓 프로그래밍 절차 - 서버와 클라이언트 소켓 About Socket 소켓의 유형 About Synchronously 소켓 프로그래밍 절차 예제 - 에코 Socketserver Module 예제 참고할만한 Module 참고자료

Python Essential 세미나 11 ● 소켓 프로그래밍 절차 - 데이터그램 소켓 About Socket 소켓의 유형 About Synchronously 소켓 프로그래밍 절차 예제 - 에코 Socketserver Module 예제 참고할만한 Module 참고자료

Python Essential 세미나 12 ● 에코 - 서버 프로그램 from socket import * HOST = '' # localhost 를 의미하는 심볼릭 이름 PORT = # 임의의 사용가능한 안쓰는 포트 s = socket(AF_INET, SOCK_STREAM) s.bind((HOST, PORT)) s.listen(1) conn, addr = s.accept() # 클라이언트에서 연결 요청이 올 때 까지 대기 print 'Connected by', addr while 1: data = conn.recv(1024) if not data: break conn.send(data) conn.close() About Socket 소켓의 유형 About Synchronously 소켓 프로그래밍 절차 예제 - 에코 Socketserver Module 예제 참고할만한 Module 참고자료

Python Essential 세미나 13 ● 에코 - 클라이언트 프로그램 from socket import * HOST = 'localhost’ # host name 현재는 한 컴퓨터 내에서 사용 PORT = # 서버와 같은 포트번호를 써야 함 s = socket(AF_INET, SOCK_STREAM) s.connect(HOST, PORT) s.send('Hello, world') data = s.recv(1024) s.close() print 'Received', `data` About Socket 소켓의 유형 About Synchronously 소켓 프로그래밍 절차 예제 - 에코 Socketserver Module 예제 참고할만한 Module 참고자료

Python Essential 세미나 14 ● 에코 - 실행결과 서버측 출력 예 Connected by (' ', 2984) 클라이언트측 출력 예 Received 'Hello, world' About Socket 소켓의 유형 About Synchronously 소켓 프로그래밍 절차 예제 - 에코 Socketserver Module 예제 참고할만한 Module 참고자료

Python Essential 세미나 15 ● Socketserver Module 예제 1: from SocketServer import * 2: HOST = ('',8001) 3: ClientList = [] 4: class MyServer(BaseRequestHandler): 5: def handle(self): 6: conn = self.request 7: if conn: 8: peername = conn.getpeername() 9: ClientList.append(peername) 10: print "Requested by ",peername 11: try: 12: cmd = raw_input(">> ") 13: while cmd: About Socket 소켓의 유형 About Synchronously 소켓 프로그래밍 절차 예제 - 에코 Socketserver Module 예제 참고할만한 Module 참고자료

Python Essential 세미나 16 ● Socketserver Module 예제 14: if cmd == 'ls': 15: print "== Connected Client Lists ==" 16: print ClientList 17: cmd = raw_input(">> ") 18: except: 19: print "Socket error occured" 20: return 21: if __name__ == '__main__': 22: my_server = ThreadingTCPServer(HOST,MyServer) 23: my_server.serve_forever() About Socket 소켓의 유형 About Synchronously 소켓 프로그래밍 절차 예제 - 에코 Socketserver Module 예제 참고할만한 Module 참고자료

Python Essential 세미나 17 ● Socketserver Module 예제 - 보충설명 def handle(self) : # handle() 메소드 재정의 request 에 대해서 처리해주는 역할 ThreadingTCPServer(HOST,MyServer) Host 는 (IP, PORT) 로 이루어져 있음 MyServer 는 request handler IP 의 `` 의미 : Local Host my_server.serve_forever() 서버가 실제로 Client 의 request 를 accept 할 수 있도록 호출 - handle_request() 는 하나의 request 를 accept - serve_forever() 는 많은 request 를 accept About Socket 소켓의 유형 About Synchronously 소켓 프로그래밍 절차 예제 - 에코 Socketserver Module 예제 참고할만한 Module 참고자료

Python Essential 세미나 18 ● 참고할만한 Module FTP(File Transfer Protocol) 프로토콜 - ftplib 모듈이 FTP 클래스를 지원 - 자세한 정보는 인터넷 RFC 959 를 참조 Telnet - telnetlib 모듈에 Telnet 프로토콜을 구현하는 Telnet 클래스를 지원 - 자세한 정보는 인터넷 RFC 854 를 참조 About Socket 소켓의 유형 About Synchronously 소켓 프로그래밍 절차 예제 - 에코 Socketserver Module 예제 참고할만한 Module 참고자료

Python Essential 세미나 19 ● 참고자료 소켓 (Socket) 프로그래밍 - 이강성, Python 으로 네트워크서버 프로그램 만들기 - 서준원, Socket API 보고서 - 임민상, About Socket 소켓의 유형 About Synchronously 소켓 프로그래밍 절차 예제 - 에코 Socketserver Module 예제 참고할만한 Module 참고자료