SlideShare a Scribd company logo
1 of 50
Download to read offline
1장. 네트워크와 소켓 프로그래밍
 TCP/IP 프로토콜의 동작 원리를 살펴본다.
 소켓의 기본 개념을 이해한다.
 윈도우 소켓의 역사와 특징을 살펴본다.
 윈도우 소켓 프로그램을 작성하고 실행하는 과정을 이해한다.
TCP/IP 윈도우 소켓 프로그래밍 2
인터넷 구성 요소 (1)
호스트
라우터
호스트
라우터
①
②
③
④
인터넷
TCP/IP 윈도우 소켓 프로그래밍 3
인터넷 구성 요소 (2)
 호스트
 최종 사용자의 응용 프로그램을 수행하는 주체
 라우터
 호스트에서 생성된 데이터를 여러 네트워크를 거쳐
전송함으로써 서로 다른 네트워크에 속한 호스트 간에
데이터를 교환할 수 있게 하는 장비
 통신 프로토콜
 호스트와 라우터, 라우터와 라우터, 호스트와 호스트가
통신하기 위한 정해진 절차와 방법
TCP/IP 윈도우 소켓 프로그래밍 4
TCP/IP 프로토콜 (1)
 TCP/IP 프로토콜
 인터넷의 핵심 프로토콜인 TCP와 IP를 비롯한 각종
프로토콜
 운영체제의 일부로 구현되며, 응용 프로그램은 운영체제
가 제공하는 TCP/IP 프로토콜의 서비스를 사용해 통신
TCP/IP 윈도우 소켓 프로그래밍 5
TCP/IP 프로토콜 (2)
TCP/IP
프로토콜
(운영체제)
응용 프로그램
라우터 라우터
TCP/IP
프로토콜
(운영체제)
응용 프로그램
호스트 호스트
TCP/IP 윈도우 소켓 프로그래밍 6
TCP/IP 프로토콜 구조 (1)
 TCP/IP 프로토콜 구조
 계층적 구조
네트워크 접근 계층
인터넷 계층
전송 계층
응용 계층
장치 드라이버
네트워크 하드웨어
IP
TCP, UDP
TELNET, FTP, HTTP,
SMTP, MIME, SNMP, ...
TCP/IP 윈도우 소켓 프로그래밍 7
TCP/IP 프로토콜 구조 (2)
 네트워크 접근 계층
 역할
– 물리적 네트워크를 통한 데이터 송수신
 구성 요소
– 네트워크 하드웨어 + 장치 드라이버
 주소 지정 방식
– 물리 주소
 예) 이더넷: 48비트 물리 주소
TCP/IP 윈도우 소켓 프로그래밍 8
TCP/IP 프로토콜 구조 (3)
 인터넷 계층
 역할
– 네트워크 접근 계층의 도움을 받아 데이터를 목적지 호스트
까지 전달
 구성 요소
– IP 주소 + 라우팅(or 라우터)
 주소 지정 방식
– IP 주소
 소프트웨어적으로 정의된 논리 주소
 전 세계적인 유일성과 하드웨어 독립성을 가짐
 라우팅
– 데이터를 목적지까지 전달하는 일련의 작업
 라우팅에 필요한 정보 수집
 라우팅 정보를 기초로 데이터 전달
TCP/IP 윈도우 소켓 프로그래밍 9
TCP/IP 프로토콜 구조 (4)
 전송 계층
 역할
– 최종 통신 목적지(응용 프로그램)를 지정하고, 오류 없이 데
이터를 전송
 데이터 손실 또는 손상을 검출해 잘못된 데이터가 목적지에 전
달되는 일을 방지
 주소 지정 방식
– 포트 번호
 대표 프로토콜
– TCP
– UDP
TCP/IP 윈도우 소켓 프로그래밍 10
TCP/IP 프로토콜 구조 (5)
 TCP와 UDP
TCP UDP
연결형(connection-oriented) 프로토콜
- 연결 설정 후 통신 가능
비연결형(connectionless) 프로토콜
- 연결 설정 없이 통신 가능
신뢰성 있는 데이터 전송
- 데이터를 재전송함
신뢰성 없는 데이터 전송
- 데이터를 재전송하지 않음
일대일 통신(unicast)
일대일 통신(unicast),
일대다 통신(broadcast, multicast)
데이터 경계 구분 안 함
- 바이트 스트림(byte-stream) 서비스
데이터 경계 구분함
- 데이터그램(datagram) 서비스
TCP/IP 윈도우 소켓 프로그래밍 11
TCP/IP 프로토콜 구조 (6)
 응용 계층
 역할
– 전송 계층을 기반으로 한 다수의 프로토콜과 이 프로토콜을
사용하는 응용 프로그램을 포괄
 대표 프로토콜
– Telnet, FTP, HTTP, SMTP, ...
TCP/IP 윈도우 소켓 프로그래밍 12
데이터 전송 원리 (1)
 패킷이란?
 각 프로토콜에서 정의한 제어 정보(IP 주소, 포트 번호, 오
류 체크 코드 등) + 데이터
 제어 정보의 위치에 따라 앞쪽에 붙는 헤더(header)와 뒤
쪽에 붙는 트레일러(trailer)로 구분
TCP/IP 윈도우 소켓 프로그래밍 13
데이터 전송 원리 (2)
 패킷 전송 형태
 송신측
이더넷
IP
TCP
응용 프로그램 데이터
데이터TCP 헤더
데이터TCP 헤더IP 헤더
TCP 헤더IP 헤더이더넷 헤더 데이터 이더넷 트레일러
TCP/IP 윈도우 소켓 프로그래밍 14
데이터 전송 원리 (3)
 패킷 전송 형태
 수신측
이더넷
IP
TCP
응용 프로그램 데이터
데이터TCP 헤더
데이터TCP 헤더IP 헤더
TCP 헤더IP 헤더이더넷 헤더 데이터 이더넷 트레일러
TCP/IP 윈도우 소켓 프로그래밍 15
데이터 전송 원리 (4)
 패킷 전송 형태
 계층별
– 각 계층은 동일 위치의 상대 계층과 통신하는 것으로 간주
응용 프로그램 응용 프로그램데이터
TCP TCPTCP 헤더 데이터
IP IPIP 헤더 TCP 헤더 데이터
TCP/IP 윈도우 소켓 프로그래밍 16
데이터 전송 원리 (5)
 패킷 전송 형태
 인터넷
– 응용 계층, 전송 계층
 하부 계층이 제공하는 가상적인 연결을 사용해 동작
– 인터넷 계층
 IP 주소와 라우팅 기능을 이용해 패킷 전송 경로 결정
– 네트워크 접근 계층
 물리 주소를 사용해 실제 패킷 전송
네트워크 접근 계층
인터넷 계층
전송 계층
응용 계층
네트워크 접근 계층
인터넷 계층
전송 계층
응용 계층
네트워크 접근 계층
인터넷 계층
네트워크 접근 계층
인터넷 계층
호스트 라우터 라우터 호스트
TCP/IP 윈도우 소켓 프로그래밍 17
IP 주소, 포트 번호 (1)
 IP 주소
 인터넷에 있는 호스트와 라우터의 식별자
– 폐쇄된 네트워크거나 IP를 공유하는 경우가 아니면 전 세계
적으로 값이 유일
 IPv4는 32비트, IPv6는 128비트 사용
 IPv4는 8비트 단위로 .(dot)로 구분하여 10진수 4개로 표
기 ☞ dotted-decimal notation
– 예) 147.46.114.70
 IPv6는 16비트 단위로 :(colon)으로 구분하여 16진수 8
개로 표기 ☞ colon-hexadecimal notation
– 예) 2001:0230:abcd:ffab:0023:eb00:ffff:1111
TCP/IP 윈도우 소켓 프로그래밍 18
IP 주소, 포트 번호 (2)
 포트 번호
 인터넷 통신의 종착점(하나 혹은 여러 프로세스)을 나타내
는 식별자
 TCP와 UDP는 포트 번호로 부호 없는 16비트 정수를 사
용하므로 0~65535 범위가 가능
 영역별 포트 번호
포트 번호 분류
0 ~ 1023 알려진 포트(well-known ports)
1024 ~ 49151 등록된 포트(registered ports)
49152 ~ 65535 동적/사설 포트(dynamic and/or private ports)
TCP/IP 윈도우 소켓 프로그래밍 19
IP 주소, 포트 번호 (3)
 IP 주소와 포트 번호
TCP
IP
프로세스 프로세스
프로세스
UDP
포트 번호(0~65535)
IP 주소
TCP/IP 윈도우 소켓 프로그래밍 20
IP 주소, 포트 번호 (4)
 도메인 이름
 IP 주소에 대한 (기억하기 쉬운) 별명
 실제 통신할 때는 IP 주소로 변환해야 함
TCP/IP 윈도우 소켓 프로그래밍 21
클라이언트-서버 모델
 클라이언트-서버(client/server) 모델
 두 프로그램이 상호 작용하는 방식을 나타내는 용어
 서비스를 요청하는 쪽은 클라이언트(client), 클라이언트
가 요청하는 서비스를 처리하는 쪽은 서버(server)
프로그램 1 프로그램 2
접속? 접속?
서버 클라이언트
대기
접속
TCP/IP 윈도우 소켓 프로그래밍 22
소켓의 개념 (1)
 전화 통신과 소켓 통신 비교
사람 사람
사람 사람
TCP/IP 윈도우 소켓 프로그래밍 23
소켓의 개념 (2)
 세 가지 관점
① 데이터 타입
② 통신 종단점
③ 네트워크 프로그래밍 인터페이스
TCP/IP 윈도우 소켓 프로그래밍 24
소켓의 개념 (3)
 데이터 타입
 파일 디스크립터 혹은 핸들과 유사한 개념
 생성과 설정 과정이 끝나면 운영체제의 통신 관련 정보를
참조해 다양한 작업을 편리하게 할 수 있는 데이터 타입
// 파일 생성
int fd = open("myfile", ...);
...
read(fd, ...) // 데이터 읽기
write(fd, ...) // 데이터 쓰기
// 소켓 생성
SOCKET sock = socket(...);
...
recv(sock, ...) // 데이터 받기
send(sock, ...) // 데이터 보내기
TCP/IP 윈도우 소켓 프로그래밍 25
소켓의 개념 (4)
 통신 종단점
 응용 프로그램은 자신의 소켓이 상대편의 소켓과 연결된
것으로 생각하고 데이터를 주고받음
TCP/IP 윈도우 소켓 프로그래밍
클라이언트
send(sock, ...)
서버
recv(sock, ...)
데이터
<클라이언트 소켓>
• 프로토콜: TCP/IP
• IP 주소: 147.46.114.70
• 포트 번호: 12023
<서버 소켓>
• 프로토콜: TCP/IP
• IP 주소: 61.72.244.22
• 포트 번호: 9001
TCP/IP 윈도우 소켓 프로그래밍 26
소켓의 개념 (5)
 네트워크 프로그래밍 인터페이스
 통신 양단이 모두 소켓을 사용할 필요는 없음
 TCP/IP 프로토콜에서 (일반적으로) 응용 계층과 전송 계
층 사이에 위치하는 것으로 간주
TCP/IP 윈도우 소켓 프로그래밍
응용 프로그램
TCP
IP
UDP
응용 프로그램 응용 프로그램
소켓 인터페이스
ICMP, IGMP
TCP/IP 윈도우 소켓 프로그래밍 27
윈도우 소켓 (1)
 윈도우 소켓(윈속)
 버클리 유닉스에서 개발한 네트워크 프로그래밍 인터페이
스를 윈도우 환경에서 사용할 수 있게 만든 것
 윈도우 95 버전부터 API에 정식으로 포함하여 제공
TCP/IP 윈도우 소켓 프로그래밍 28
윈도우 소켓 (2)
 윈도우 소켓과 유닉스 소켓의 차이점
 윈도우 소켓은 DLL을 통해 대부분의 기능이 제공되므로
DLL 초기화와 종료 작업을 위한 함수가 필요
 윈도우 프로그램은 대개 GUI를 갖추고 메시지 구동 방식
으로 동작하므로 이를 위한 확장 함수가 존재
 윈도우는 운영체제 차원에서 멀티스레드를 지원하므로 멀
티스레드 환경에서 안정적으로 동작하는 구조와 이를 위
한 함수가 필요
TCP/IP 윈도우 소켓 프로그래밍 29
윈도우 소켓 (3)
 윈도우 운영체제의 윈속 지원
 윈속에서 지원하는 통신 프로토콜
 TCP/IP(윈도우 95 이상, 윈도우 CE 2.1 이상)
 IPv6(윈도우 XP SP1 이상, 윈도우 CE .NET 4.1 이상)
 IrDA(윈도우 98 이상, 모든 윈도우 CE 버전)
 Bluetooth(윈도우 XP SP2 이상, 윈도우 CE .NET 4.0 이상)
운영체제 윈속 버전
윈도우 95 1.1 (2.2)
윈도우 98/Me, 윈도우 NT/2000/XP/2003 서버,
윈도우 비스타/2008 서버/7
2.2
윈도우 CE 1.1 (2.2)
TCP/IP 윈도우 소켓 프로그래밍 30
윈도우 소켓 (4)
 윈속의 장점
 유닉스 소켓과 소스 코드 수준에서 호환성이 높으므로 기
존 코드를 이식하여 활용하기 쉬움
 가장 널리 사용하는 네트워크 프로그래밍 인터페이스이므
로 한번 배우면 여러 운영체제(윈도우, 리눅스 등)에서 사
용 가능
 TCP/IP 외의 프로토콜도 지원하므로 최소 코드 수정으로
응용 프로그램이 사용할 프로토콜 변경 가능
 비교적 저수준 프로그래밍 인터페이스이므로 세부 제어가
가능하며 고성능 네트워크 프로그램 개발 가능
TCP/IP 윈도우 소켓 프로그래밍 31
윈도우 소켓 (5)
 윈속의 단점
 응용 프로그램 수준의 프로토콜을 프로그래머가 직접 설
계해야 함
– 주고받는 데이터 형식이나 전송 절차 등을 고려해 프로그래
밍해야 하며, 설계 변경 시에는 코드 수정이 불가피함
 서로 다른 바이트 정렬 방식을 사용하거나 데이터 처리 단
위가 서로 다른 호스트끼리 통신할 경우, 응용 프로그램
수준에서 데이터 변환을 처리해야 함
TCP/IP 윈도우 소켓 프로그래밍 32
윈도우 소켓 (6)
 윈속 구조
윈속 2.x
응용 프로그램
윈속 1.x
응용 프로그램
WINSOCK.DLL (16비트)
WSOCK32.DLL (32비트)
WS2_32.DLL (32비트)
윈속 1.x API
윈속 2.x API
TCP/IP IrDA
MSWSOCK.DLL
...Bluetooth
윈속 1.x 확장 API
TCP/IP 윈도우 소켓 프로그래밍 33
윈도우 소켓 프로그램 맛보기 (1)
 프로젝트 생성
TCP/IP 윈도우 소켓 프로그래밍 34
윈도우 소켓 프로그램 맛보기 (2)
 설정 변경
TCP/IP 윈도우 소켓 프로그래밍 35
윈도우 소켓 프로그램 맛보기 (3)
 소스 파일 추가 (1/2)
TCP/IP 윈도우 소켓 프로그래밍 36
윈도우 소켓 프로그램 맛보기 (4)
 소스 파일 추가 (2/2)
TCP/IP 윈도우 소켓 프로그래밍 37
윈도우 소켓 프로그램 맛보기 (5)
 문자 집합 변경과 윈속 라이브러리 추가 (1/4)
TCP/IP 윈도우 소켓 프로그래밍 38
윈도우 소켓 프로그램 맛보기 (6)
 문자 집합 변경과 윈속 라이브러리 추가 (2/4)
TCP/IP 윈도우 소켓 프로그래밍 39
윈도우 소켓 프로그램 맛보기 (7)
 문자 집합 변경과 윈속 라이브러리 추가 (3/4)
TCP/IP 윈도우 소켓 프로그래밍 40
윈도우 소켓 프로그램 맛보기 (8)
 문자 집합 변경과 윈속 라이브러리 추가 (4/4)
 비주얼 C++ 6.0을 사용하는 경우에는
[Project]→[Settings]→[Link]→[Object/library
modules] 부분에“ws2_32.lib”를 입력한다.
 비주얼 C++ 버전에 따라 윈속 라이브러리를 추가하는 방
식이 달라서 번거롭다면 소스 코드의 임의 위치에
#pragma comment(lib,“ws2_32”) 한 줄을 넣으면 된
다. 2장 이후의 모든 코드는 이 방식을 사용한다.
TCP/IP 윈도우 소켓 프로그래밍 41
TCP/IP 윈도우 소켓 프로그래밍 42
TCP/IP 윈도우 소켓 프로그래밍 43
TCP/IP 윈도우 소켓 프로그래밍 44
TCP/IP 윈도우 소켓 프로그래밍 45
TCP/IP 윈도우 소켓 프로그래밍 46
TCP/IP 윈도우 소켓 프로그래밍 47
실행을 위한 준비
 윈도우 7 텔넷설치
 Windows7에서는 기본적으로 Telnet Client 가 설치되어 있지 않음
– Telnet 설치방법
 제어판 -> 프로그램 -> 프로그램 및 기능에 들어가서 ‘Windows 기능 사용/사용안함’
을 선택
 우측 기능 목록 하단에 "텔넷클라이언트"를 체크하여 설치를 시작
TCP/IP 윈도우 소켓 프로그래밍 48
실행 방법
 명령프롬프트를 실행한 후 telnet을 실행
 telnet <서버IP주소> 9000 + EnterEnter
TCP/IP 윈도우 소켓 프로그래밍 49
윈도우 소켓 프로그램 맛보기 (9)
 실행 화면
 텔넷에서 입력한 내용이 서버 화면에 그대로 출력됨.
TCP/IP 윈도우 소켓 프로그래밍 50
Thank you
www.hanb.co.kr

More Related Content

What's hot

Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Seung-Hoon Baek
 
Cilium - Network security for microservices
Cilium - Network security for microservicesCilium - Network security for microservices
Cilium - Network security for microservicesThomas Graf
 
Introduction to eBPF and XDP
Introduction to eBPF and XDPIntroduction to eBPF and XDP
Introduction to eBPF and XDPlcplcp1
 
Stateful Flow Table - SFT 2020 DPDK users pace summit
Stateful Flow Table - SFT 2020 DPDK users pace summitStateful Flow Table - SFT 2020 DPDK users pace summit
Stateful Flow Table - SFT 2020 DPDK users pace summitAndrey Vesnovaty
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequenceHoucheng Lin
 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecturehugo lu
 
Deep dive in Docker Overlay Networks
Deep dive in Docker Overlay NetworksDeep dive in Docker Overlay Networks
Deep dive in Docker Overlay NetworksLaurent Bernaille
 
Network Automation with Ansible
Network Automation with AnsibleNetwork Automation with Ansible
Network Automation with AnsibleAnas
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking ExplainedThomas Graf
 
U-Boot Porting on New Hardware
U-Boot Porting on New HardwareU-Boot Porting on New Hardware
U-Boot Porting on New HardwareRuggedBoardGroup
 
Routing Protocols and Concepts - Chapter 1
Routing Protocols and Concepts - Chapter 1Routing Protocols and Concepts - Chapter 1
Routing Protocols and Concepts - Chapter 1CAVC
 
Offline bruteforce attack on WiFi Protected Setup
Offline bruteforce attack on WiFi Protected SetupOffline bruteforce attack on WiFi Protected Setup
Offline bruteforce attack on WiFi Protected Setup0xcite
 
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi Subsystem
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi SubsystemTutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi Subsystem
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi SubsystemDheryta Jaisinghani
 
Apic dc api deep dive
Apic dc api deep dive Apic dc api deep dive
Apic dc api deep dive Cisco DevNet
 
debugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitchdebugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitch어형 이
 
Embedded Event Manager (EEM) on IOS (CiscoLive 2015)
Embedded Event Manager (EEM) on IOS (CiscoLive 2015)Embedded Event Manager (EEM) on IOS (CiscoLive 2015)
Embedded Event Manager (EEM) on IOS (CiscoLive 2015)Arie Vayner
 

What's hot (20)

Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조
 
Cilium - Network security for microservices
Cilium - Network security for microservicesCilium - Network security for microservices
Cilium - Network security for microservices
 
Introduction to eBPF and XDP
Introduction to eBPF and XDPIntroduction to eBPF and XDP
Introduction to eBPF and XDP
 
Stateful Flow Table - SFT 2020 DPDK users pace summit
Stateful Flow Table - SFT 2020 DPDK users pace summitStateful Flow Table - SFT 2020 DPDK users pace summit
Stateful Flow Table - SFT 2020 DPDK users pace summit
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequence
 
Iptables the Linux Firewall
Iptables the Linux Firewall Iptables the Linux Firewall
Iptables the Linux Firewall
 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecture
 
Deep dive in Docker Overlay Networks
Deep dive in Docker Overlay NetworksDeep dive in Docker Overlay Networks
Deep dive in Docker Overlay Networks
 
Network Automation with Ansible
Network Automation with AnsibleNetwork Automation with Ansible
Network Automation with Ansible
 
lab1
lab1lab1
lab1
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained
 
TCP/IP and DNS
TCP/IP and DNSTCP/IP and DNS
TCP/IP and DNS
 
U-Boot Porting on New Hardware
U-Boot Porting on New HardwareU-Boot Porting on New Hardware
U-Boot Porting on New Hardware
 
Routing Protocols and Concepts - Chapter 1
Routing Protocols and Concepts - Chapter 1Routing Protocols and Concepts - Chapter 1
Routing Protocols and Concepts - Chapter 1
 
Offline bruteforce attack on WiFi Protected Setup
Offline bruteforce attack on WiFi Protected SetupOffline bruteforce attack on WiFi Protected Setup
Offline bruteforce attack on WiFi Protected Setup
 
Linux device drivers
Linux device drivers Linux device drivers
Linux device drivers
 
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi Subsystem
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi SubsystemTutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi Subsystem
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi Subsystem
 
Apic dc api deep dive
Apic dc api deep dive Apic dc api deep dive
Apic dc api deep dive
 
debugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitchdebugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitch
 
Embedded Event Manager (EEM) on IOS (CiscoLive 2015)
Embedded Event Manager (EEM) on IOS (CiscoLive 2015)Embedded Event Manager (EEM) on IOS (CiscoLive 2015)
Embedded Event Manager (EEM) on IOS (CiscoLive 2015)
 

Viewers also liked

KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직Hyunjik Bae
 
TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수Yeon Soo Kim
 
A comparative study of social network analysis tools
A comparative study of social network analysis toolsA comparative study of social network analysis tools
A comparative study of social network analysis toolsDavid Combe
 
A Fast and Dirty Intro to NetworkX (and D3)
A Fast and Dirty Intro to NetworkX (and D3)A Fast and Dirty Intro to NetworkX (and D3)
A Fast and Dirty Intro to NetworkX (and D3)Lynn Cherny
 
NetworkX - python graph analysis and visualization @ PyHug
NetworkX - python graph analysis and visualization @ PyHugNetworkX - python graph analysis and visualization @ PyHug
NetworkX - python graph analysis and visualization @ PyHugJimmy Lai
 
[20140830, Pycon2014] NetworkX를 이용한 네트워크 분석
[20140830, Pycon2014] NetworkX를 이용한 네트워크 분석[20140830, Pycon2014] NetworkX를 이용한 네트워크 분석
[20140830, Pycon2014] NetworkX를 이용한 네트워크 분석Kyunghoon Kim
 
Networkx & Gephi Tutorial #Pydata NYC
Networkx & Gephi Tutorial #Pydata NYCNetworkx & Gephi Tutorial #Pydata NYC
Networkx & Gephi Tutorial #Pydata NYCGilad Lotan
 

Viewers also liked (8)

네트워크 기본
네트워크 기본네트워크 기본
네트워크 기본
 
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
 
TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수
 
A comparative study of social network analysis tools
A comparative study of social network analysis toolsA comparative study of social network analysis tools
A comparative study of social network analysis tools
 
A Fast and Dirty Intro to NetworkX (and D3)
A Fast and Dirty Intro to NetworkX (and D3)A Fast and Dirty Intro to NetworkX (and D3)
A Fast and Dirty Intro to NetworkX (and D3)
 
NetworkX - python graph analysis and visualization @ PyHug
NetworkX - python graph analysis and visualization @ PyHugNetworkX - python graph analysis and visualization @ PyHug
NetworkX - python graph analysis and visualization @ PyHug
 
[20140830, Pycon2014] NetworkX를 이용한 네트워크 분석
[20140830, Pycon2014] NetworkX를 이용한 네트워크 분석[20140830, Pycon2014] NetworkX를 이용한 네트워크 분석
[20140830, Pycon2014] NetworkX를 이용한 네트워크 분석
 
Networkx & Gephi Tutorial #Pydata NYC
Networkx & Gephi Tutorial #Pydata NYCNetworkx & Gephi Tutorial #Pydata NYC
Networkx & Gephi Tutorial #Pydata NYC
 

Similar to Ch01 네트워크와+소켓+프로그래밍+[호환+모드]

리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초Yu Yongwoo
 
Interface and Protocol
Interface and ProtocolInterface and Protocol
Interface and ProtocolWonjun Hwang
 
소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약세빈 정
 
웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD활 김
 
네트워크와 인터넷
네트워크와 인터넷네트워크와 인터넷
네트워크와 인터넷Wonjun Hwang
 
컴퓨터공학 스터디 W4 발표: TCP/UDP
컴퓨터공학 스터디 W4 발표: TCP/UDP컴퓨터공학 스터디 W4 발표: TCP/UDP
컴퓨터공학 스터디 W4 발표: TCP/UDPssuser91b87c
 
[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?용민 박
 
Python으로 채팅 구현하기
Python으로 채팅 구현하기Python으로 채팅 구현하기
Python으로 채팅 구현하기Tae Young Lee
 
네트워크 스터디(Tcp 소켓 프로그래밍)
네트워크 스터디(Tcp 소켓 프로그래밍)네트워크 스터디(Tcp 소켓 프로그래밍)
네트워크 스터디(Tcp 소켓 프로그래밍)MoonLightMS
 
웹을 지탱하는 기술
웹을 지탱하는 기술웹을 지탱하는 기술
웹을 지탱하는 기술JungHyuk Kwon
 
웹을 지탱하는 기술
웹을 지탱하는 기술웹을 지탱하는 기술
웹을 지탱하는 기술정혁 권
 
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD StudioDevgear
 
Digital contents multimedia
Digital contents multimediaDigital contents multimedia
Digital contents multimediaDonghoi Kim
 
Network virtualization for the better understanding of Data Center Network
Network virtualization for the better understanding of Data Center NetworkNetwork virtualization for the better understanding of Data Center Network
Network virtualization for the better understanding of Data Center NetworkInho Kang
 
IT 일반기술 강의자료_ed10
IT 일반기술 강의자료_ed10IT 일반기술 강의자료_ed10
IT 일반기술 강의자료_ed10hungrok
 
TCP/IP Protocol - JAVA
TCP/IP Protocol - JAVATCP/IP Protocol - JAVA
TCP/IP Protocol - JAVAcooddy
 
NAT and Hole Punching_SYS4U I&C
NAT and Hole Punching_SYS4U I&CNAT and Hole Punching_SYS4U I&C
NAT and Hole Punching_SYS4U I&Csys4u
 

Similar to Ch01 네트워크와+소켓+프로그래밍+[호환+모드] (20)

리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초
 
Interface and Protocol
Interface and ProtocolInterface and Protocol
Interface and Protocol
 
소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약
 
웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD
 
네트워크와 인터넷
네트워크와 인터넷네트워크와 인터넷
네트워크와 인터넷
 
컴퓨터공학 스터디 W4 발표: TCP/UDP
컴퓨터공학 스터디 W4 발표: TCP/UDP컴퓨터공학 스터디 W4 발표: TCP/UDP
컴퓨터공학 스터디 W4 발표: TCP/UDP
 
[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?
 
Python으로 채팅 구현하기
Python으로 채팅 구현하기Python으로 채팅 구현하기
Python으로 채팅 구현하기
 
WebRTC
WebRTCWebRTC
WebRTC
 
네트워크 스터디(Tcp 소켓 프로그래밍)
네트워크 스터디(Tcp 소켓 프로그래밍)네트워크 스터디(Tcp 소켓 프로그래밍)
네트워크 스터디(Tcp 소켓 프로그래밍)
 
웹을 지탱하는 기술
웹을 지탱하는 기술웹을 지탱하는 기술
웹을 지탱하는 기술
 
웹을 지탱하는 기술
웹을 지탱하는 기술웹을 지탱하는 기술
웹을 지탱하는 기술
 
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
 
Digital contents multimedia
Digital contents multimediaDigital contents multimedia
Digital contents multimedia
 
Network virtualization for the better understanding of Data Center Network
Network virtualization for the better understanding of Data Center NetworkNetwork virtualization for the better understanding of Data Center Network
Network virtualization for the better understanding of Data Center Network
 
ice_grad
ice_gradice_grad
ice_grad
 
IT 일반기술 강의자료_ed10
IT 일반기술 강의자료_ed10IT 일반기술 강의자료_ed10
IT 일반기술 강의자료_ed10
 
TCP/IP Protocol - JAVA
TCP/IP Protocol - JAVATCP/IP Protocol - JAVA
TCP/IP Protocol - JAVA
 
NAT and Hole Punching_SYS4U I&C
NAT and Hole Punching_SYS4U I&CNAT and Hole Punching_SYS4U I&C
NAT and Hole Punching_SYS4U I&C
 
퀴즈요약
퀴즈요약퀴즈요약
퀴즈요약
 

Ch01 네트워크와+소켓+프로그래밍+[호환+모드]

  • 1. 1장. 네트워크와 소켓 프로그래밍  TCP/IP 프로토콜의 동작 원리를 살펴본다.  소켓의 기본 개념을 이해한다.  윈도우 소켓의 역사와 특징을 살펴본다.  윈도우 소켓 프로그램을 작성하고 실행하는 과정을 이해한다.
  • 2. TCP/IP 윈도우 소켓 프로그래밍 2 인터넷 구성 요소 (1) 호스트 라우터 호스트 라우터 ① ② ③ ④ 인터넷
  • 3. TCP/IP 윈도우 소켓 프로그래밍 3 인터넷 구성 요소 (2)  호스트  최종 사용자의 응용 프로그램을 수행하는 주체  라우터  호스트에서 생성된 데이터를 여러 네트워크를 거쳐 전송함으로써 서로 다른 네트워크에 속한 호스트 간에 데이터를 교환할 수 있게 하는 장비  통신 프로토콜  호스트와 라우터, 라우터와 라우터, 호스트와 호스트가 통신하기 위한 정해진 절차와 방법
  • 4. TCP/IP 윈도우 소켓 프로그래밍 4 TCP/IP 프로토콜 (1)  TCP/IP 프로토콜  인터넷의 핵심 프로토콜인 TCP와 IP를 비롯한 각종 프로토콜  운영체제의 일부로 구현되며, 응용 프로그램은 운영체제 가 제공하는 TCP/IP 프로토콜의 서비스를 사용해 통신
  • 5. TCP/IP 윈도우 소켓 프로그래밍 5 TCP/IP 프로토콜 (2) TCP/IP 프로토콜 (운영체제) 응용 프로그램 라우터 라우터 TCP/IP 프로토콜 (운영체제) 응용 프로그램 호스트 호스트
  • 6. TCP/IP 윈도우 소켓 프로그래밍 6 TCP/IP 프로토콜 구조 (1)  TCP/IP 프로토콜 구조  계층적 구조 네트워크 접근 계층 인터넷 계층 전송 계층 응용 계층 장치 드라이버 네트워크 하드웨어 IP TCP, UDP TELNET, FTP, HTTP, SMTP, MIME, SNMP, ...
  • 7. TCP/IP 윈도우 소켓 프로그래밍 7 TCP/IP 프로토콜 구조 (2)  네트워크 접근 계층  역할 – 물리적 네트워크를 통한 데이터 송수신  구성 요소 – 네트워크 하드웨어 + 장치 드라이버  주소 지정 방식 – 물리 주소  예) 이더넷: 48비트 물리 주소
  • 8. TCP/IP 윈도우 소켓 프로그래밍 8 TCP/IP 프로토콜 구조 (3)  인터넷 계층  역할 – 네트워크 접근 계층의 도움을 받아 데이터를 목적지 호스트 까지 전달  구성 요소 – IP 주소 + 라우팅(or 라우터)  주소 지정 방식 – IP 주소  소프트웨어적으로 정의된 논리 주소  전 세계적인 유일성과 하드웨어 독립성을 가짐  라우팅 – 데이터를 목적지까지 전달하는 일련의 작업  라우팅에 필요한 정보 수집  라우팅 정보를 기초로 데이터 전달
  • 9. TCP/IP 윈도우 소켓 프로그래밍 9 TCP/IP 프로토콜 구조 (4)  전송 계층  역할 – 최종 통신 목적지(응용 프로그램)를 지정하고, 오류 없이 데 이터를 전송  데이터 손실 또는 손상을 검출해 잘못된 데이터가 목적지에 전 달되는 일을 방지  주소 지정 방식 – 포트 번호  대표 프로토콜 – TCP – UDP
  • 10. TCP/IP 윈도우 소켓 프로그래밍 10 TCP/IP 프로토콜 구조 (5)  TCP와 UDP TCP UDP 연결형(connection-oriented) 프로토콜 - 연결 설정 후 통신 가능 비연결형(connectionless) 프로토콜 - 연결 설정 없이 통신 가능 신뢰성 있는 데이터 전송 - 데이터를 재전송함 신뢰성 없는 데이터 전송 - 데이터를 재전송하지 않음 일대일 통신(unicast) 일대일 통신(unicast), 일대다 통신(broadcast, multicast) 데이터 경계 구분 안 함 - 바이트 스트림(byte-stream) 서비스 데이터 경계 구분함 - 데이터그램(datagram) 서비스
  • 11. TCP/IP 윈도우 소켓 프로그래밍 11 TCP/IP 프로토콜 구조 (6)  응용 계층  역할 – 전송 계층을 기반으로 한 다수의 프로토콜과 이 프로토콜을 사용하는 응용 프로그램을 포괄  대표 프로토콜 – Telnet, FTP, HTTP, SMTP, ...
  • 12. TCP/IP 윈도우 소켓 프로그래밍 12 데이터 전송 원리 (1)  패킷이란?  각 프로토콜에서 정의한 제어 정보(IP 주소, 포트 번호, 오 류 체크 코드 등) + 데이터  제어 정보의 위치에 따라 앞쪽에 붙는 헤더(header)와 뒤 쪽에 붙는 트레일러(trailer)로 구분
  • 13. TCP/IP 윈도우 소켓 프로그래밍 13 데이터 전송 원리 (2)  패킷 전송 형태  송신측 이더넷 IP TCP 응용 프로그램 데이터 데이터TCP 헤더 데이터TCP 헤더IP 헤더 TCP 헤더IP 헤더이더넷 헤더 데이터 이더넷 트레일러
  • 14. TCP/IP 윈도우 소켓 프로그래밍 14 데이터 전송 원리 (3)  패킷 전송 형태  수신측 이더넷 IP TCP 응용 프로그램 데이터 데이터TCP 헤더 데이터TCP 헤더IP 헤더 TCP 헤더IP 헤더이더넷 헤더 데이터 이더넷 트레일러
  • 15. TCP/IP 윈도우 소켓 프로그래밍 15 데이터 전송 원리 (4)  패킷 전송 형태  계층별 – 각 계층은 동일 위치의 상대 계층과 통신하는 것으로 간주 응용 프로그램 응용 프로그램데이터 TCP TCPTCP 헤더 데이터 IP IPIP 헤더 TCP 헤더 데이터
  • 16. TCP/IP 윈도우 소켓 프로그래밍 16 데이터 전송 원리 (5)  패킷 전송 형태  인터넷 – 응용 계층, 전송 계층  하부 계층이 제공하는 가상적인 연결을 사용해 동작 – 인터넷 계층  IP 주소와 라우팅 기능을 이용해 패킷 전송 경로 결정 – 네트워크 접근 계층  물리 주소를 사용해 실제 패킷 전송 네트워크 접근 계층 인터넷 계층 전송 계층 응용 계층 네트워크 접근 계층 인터넷 계층 전송 계층 응용 계층 네트워크 접근 계층 인터넷 계층 네트워크 접근 계층 인터넷 계층 호스트 라우터 라우터 호스트
  • 17. TCP/IP 윈도우 소켓 프로그래밍 17 IP 주소, 포트 번호 (1)  IP 주소  인터넷에 있는 호스트와 라우터의 식별자 – 폐쇄된 네트워크거나 IP를 공유하는 경우가 아니면 전 세계 적으로 값이 유일  IPv4는 32비트, IPv6는 128비트 사용  IPv4는 8비트 단위로 .(dot)로 구분하여 10진수 4개로 표 기 ☞ dotted-decimal notation – 예) 147.46.114.70  IPv6는 16비트 단위로 :(colon)으로 구분하여 16진수 8 개로 표기 ☞ colon-hexadecimal notation – 예) 2001:0230:abcd:ffab:0023:eb00:ffff:1111
  • 18. TCP/IP 윈도우 소켓 프로그래밍 18 IP 주소, 포트 번호 (2)  포트 번호  인터넷 통신의 종착점(하나 혹은 여러 프로세스)을 나타내 는 식별자  TCP와 UDP는 포트 번호로 부호 없는 16비트 정수를 사 용하므로 0~65535 범위가 가능  영역별 포트 번호 포트 번호 분류 0 ~ 1023 알려진 포트(well-known ports) 1024 ~ 49151 등록된 포트(registered ports) 49152 ~ 65535 동적/사설 포트(dynamic and/or private ports)
  • 19. TCP/IP 윈도우 소켓 프로그래밍 19 IP 주소, 포트 번호 (3)  IP 주소와 포트 번호 TCP IP 프로세스 프로세스 프로세스 UDP 포트 번호(0~65535) IP 주소
  • 20. TCP/IP 윈도우 소켓 프로그래밍 20 IP 주소, 포트 번호 (4)  도메인 이름  IP 주소에 대한 (기억하기 쉬운) 별명  실제 통신할 때는 IP 주소로 변환해야 함
  • 21. TCP/IP 윈도우 소켓 프로그래밍 21 클라이언트-서버 모델  클라이언트-서버(client/server) 모델  두 프로그램이 상호 작용하는 방식을 나타내는 용어  서비스를 요청하는 쪽은 클라이언트(client), 클라이언트 가 요청하는 서비스를 처리하는 쪽은 서버(server) 프로그램 1 프로그램 2 접속? 접속? 서버 클라이언트 대기 접속
  • 22. TCP/IP 윈도우 소켓 프로그래밍 22 소켓의 개념 (1)  전화 통신과 소켓 통신 비교 사람 사람 사람 사람
  • 23. TCP/IP 윈도우 소켓 프로그래밍 23 소켓의 개념 (2)  세 가지 관점 ① 데이터 타입 ② 통신 종단점 ③ 네트워크 프로그래밍 인터페이스
  • 24. TCP/IP 윈도우 소켓 프로그래밍 24 소켓의 개념 (3)  데이터 타입  파일 디스크립터 혹은 핸들과 유사한 개념  생성과 설정 과정이 끝나면 운영체제의 통신 관련 정보를 참조해 다양한 작업을 편리하게 할 수 있는 데이터 타입 // 파일 생성 int fd = open("myfile", ...); ... read(fd, ...) // 데이터 읽기 write(fd, ...) // 데이터 쓰기 // 소켓 생성 SOCKET sock = socket(...); ... recv(sock, ...) // 데이터 받기 send(sock, ...) // 데이터 보내기
  • 25. TCP/IP 윈도우 소켓 프로그래밍 25 소켓의 개념 (4)  통신 종단점  응용 프로그램은 자신의 소켓이 상대편의 소켓과 연결된 것으로 생각하고 데이터를 주고받음 TCP/IP 윈도우 소켓 프로그래밍 클라이언트 send(sock, ...) 서버 recv(sock, ...) 데이터 <클라이언트 소켓> • 프로토콜: TCP/IP • IP 주소: 147.46.114.70 • 포트 번호: 12023 <서버 소켓> • 프로토콜: TCP/IP • IP 주소: 61.72.244.22 • 포트 번호: 9001
  • 26. TCP/IP 윈도우 소켓 프로그래밍 26 소켓의 개념 (5)  네트워크 프로그래밍 인터페이스  통신 양단이 모두 소켓을 사용할 필요는 없음  TCP/IP 프로토콜에서 (일반적으로) 응용 계층과 전송 계 층 사이에 위치하는 것으로 간주 TCP/IP 윈도우 소켓 프로그래밍 응용 프로그램 TCP IP UDP 응용 프로그램 응용 프로그램 소켓 인터페이스 ICMP, IGMP
  • 27. TCP/IP 윈도우 소켓 프로그래밍 27 윈도우 소켓 (1)  윈도우 소켓(윈속)  버클리 유닉스에서 개발한 네트워크 프로그래밍 인터페이 스를 윈도우 환경에서 사용할 수 있게 만든 것  윈도우 95 버전부터 API에 정식으로 포함하여 제공
  • 28. TCP/IP 윈도우 소켓 프로그래밍 28 윈도우 소켓 (2)  윈도우 소켓과 유닉스 소켓의 차이점  윈도우 소켓은 DLL을 통해 대부분의 기능이 제공되므로 DLL 초기화와 종료 작업을 위한 함수가 필요  윈도우 프로그램은 대개 GUI를 갖추고 메시지 구동 방식 으로 동작하므로 이를 위한 확장 함수가 존재  윈도우는 운영체제 차원에서 멀티스레드를 지원하므로 멀 티스레드 환경에서 안정적으로 동작하는 구조와 이를 위 한 함수가 필요
  • 29. TCP/IP 윈도우 소켓 프로그래밍 29 윈도우 소켓 (3)  윈도우 운영체제의 윈속 지원  윈속에서 지원하는 통신 프로토콜  TCP/IP(윈도우 95 이상, 윈도우 CE 2.1 이상)  IPv6(윈도우 XP SP1 이상, 윈도우 CE .NET 4.1 이상)  IrDA(윈도우 98 이상, 모든 윈도우 CE 버전)  Bluetooth(윈도우 XP SP2 이상, 윈도우 CE .NET 4.0 이상) 운영체제 윈속 버전 윈도우 95 1.1 (2.2) 윈도우 98/Me, 윈도우 NT/2000/XP/2003 서버, 윈도우 비스타/2008 서버/7 2.2 윈도우 CE 1.1 (2.2)
  • 30. TCP/IP 윈도우 소켓 프로그래밍 30 윈도우 소켓 (4)  윈속의 장점  유닉스 소켓과 소스 코드 수준에서 호환성이 높으므로 기 존 코드를 이식하여 활용하기 쉬움  가장 널리 사용하는 네트워크 프로그래밍 인터페이스이므 로 한번 배우면 여러 운영체제(윈도우, 리눅스 등)에서 사 용 가능  TCP/IP 외의 프로토콜도 지원하므로 최소 코드 수정으로 응용 프로그램이 사용할 프로토콜 변경 가능  비교적 저수준 프로그래밍 인터페이스이므로 세부 제어가 가능하며 고성능 네트워크 프로그램 개발 가능
  • 31. TCP/IP 윈도우 소켓 프로그래밍 31 윈도우 소켓 (5)  윈속의 단점  응용 프로그램 수준의 프로토콜을 프로그래머가 직접 설 계해야 함 – 주고받는 데이터 형식이나 전송 절차 등을 고려해 프로그래 밍해야 하며, 설계 변경 시에는 코드 수정이 불가피함  서로 다른 바이트 정렬 방식을 사용하거나 데이터 처리 단 위가 서로 다른 호스트끼리 통신할 경우, 응용 프로그램 수준에서 데이터 변환을 처리해야 함
  • 32. TCP/IP 윈도우 소켓 프로그래밍 32 윈도우 소켓 (6)  윈속 구조 윈속 2.x 응용 프로그램 윈속 1.x 응용 프로그램 WINSOCK.DLL (16비트) WSOCK32.DLL (32비트) WS2_32.DLL (32비트) 윈속 1.x API 윈속 2.x API TCP/IP IrDA MSWSOCK.DLL ...Bluetooth 윈속 1.x 확장 API
  • 33. TCP/IP 윈도우 소켓 프로그래밍 33 윈도우 소켓 프로그램 맛보기 (1)  프로젝트 생성
  • 34. TCP/IP 윈도우 소켓 프로그래밍 34 윈도우 소켓 프로그램 맛보기 (2)  설정 변경
  • 35. TCP/IP 윈도우 소켓 프로그래밍 35 윈도우 소켓 프로그램 맛보기 (3)  소스 파일 추가 (1/2)
  • 36. TCP/IP 윈도우 소켓 프로그래밍 36 윈도우 소켓 프로그램 맛보기 (4)  소스 파일 추가 (2/2)
  • 37. TCP/IP 윈도우 소켓 프로그래밍 37 윈도우 소켓 프로그램 맛보기 (5)  문자 집합 변경과 윈속 라이브러리 추가 (1/4)
  • 38. TCP/IP 윈도우 소켓 프로그래밍 38 윈도우 소켓 프로그램 맛보기 (6)  문자 집합 변경과 윈속 라이브러리 추가 (2/4)
  • 39. TCP/IP 윈도우 소켓 프로그래밍 39 윈도우 소켓 프로그램 맛보기 (7)  문자 집합 변경과 윈속 라이브러리 추가 (3/4)
  • 40. TCP/IP 윈도우 소켓 프로그래밍 40 윈도우 소켓 프로그램 맛보기 (8)  문자 집합 변경과 윈속 라이브러리 추가 (4/4)  비주얼 C++ 6.0을 사용하는 경우에는 [Project]→[Settings]→[Link]→[Object/library modules] 부분에“ws2_32.lib”를 입력한다.  비주얼 C++ 버전에 따라 윈속 라이브러리를 추가하는 방 식이 달라서 번거롭다면 소스 코드의 임의 위치에 #pragma comment(lib,“ws2_32”) 한 줄을 넣으면 된 다. 2장 이후의 모든 코드는 이 방식을 사용한다.
  • 41. TCP/IP 윈도우 소켓 프로그래밍 41
  • 42. TCP/IP 윈도우 소켓 프로그래밍 42
  • 43. TCP/IP 윈도우 소켓 프로그래밍 43
  • 44. TCP/IP 윈도우 소켓 프로그래밍 44
  • 45. TCP/IP 윈도우 소켓 프로그래밍 45
  • 46. TCP/IP 윈도우 소켓 프로그래밍 46
  • 47. TCP/IP 윈도우 소켓 프로그래밍 47 실행을 위한 준비  윈도우 7 텔넷설치  Windows7에서는 기본적으로 Telnet Client 가 설치되어 있지 않음 – Telnet 설치방법  제어판 -> 프로그램 -> 프로그램 및 기능에 들어가서 ‘Windows 기능 사용/사용안함’ 을 선택  우측 기능 목록 하단에 "텔넷클라이언트"를 체크하여 설치를 시작
  • 48. TCP/IP 윈도우 소켓 프로그래밍 48 실행 방법  명령프롬프트를 실행한 후 telnet을 실행  telnet <서버IP주소> 9000 + EnterEnter
  • 49. TCP/IP 윈도우 소켓 프로그래밍 49 윈도우 소켓 프로그램 맛보기 (9)  실행 화면  텔넷에서 입력한 내용이 서버 화면에 그대로 출력됨.
  • 50. TCP/IP 윈도우 소켓 프로그래밍 50 Thank you www.hanb.co.kr