소켓 모델 주소 지정 in_addr_t inet_addr(const char *ip_address) 연결 지향 모델 (TCP)

Slides:



Advertisements
Similar presentations
1 안드로이드 네트워킹 안드로이드 앱 프로그래밍 여 규리.
Advertisements

Java Socket 통신 이개혁 정대준.
Network Lab. Byoung-Son, Choi
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
TCP/IP Network Experimental Programming [IPv6에 의한 통신 실험]
13장 소켓.
Chapter 06. UDP 서버/클라이언트.
Ch.07-5 xml-rpc 사용하기 김상엽.
TCP/IP Socket Cover Slide 조태문.
Network Lab. Young-Chul Hwang
TCP Client/Server Program
Department of Computer Science and Engineering
TCP/IP 소켓 프로그래밍 - C 버전 중에서
Sockets Introduction and Protocol Setting
4장. 소켓 유형과 프로토콜 Network Lab. 이 원 구 1.
TCP/IP Socket Cover Slide 조태문.
Linux Socket Programming - Introducing Sockets –
Chapter 03. 소켓 주소 구조체 다루기.
TCP Client/Server Program
Network Lab. Seoung Hyeon, Lee
Multimedia & Mobile Communications Lab.
Internet Address Conversion Functions
3장. 소켓 주소 구조체 다루기 소켓 주소 구조체의 정의와 초기화 방법을 익힌다.
6장 비연결형 지향 프로토콜 Database Lab 강 우 석.
11 소켓 프로그래밍 기초.
인터넷 주소 변환 School of Electronics and Information. Kyung Hee University.
14장 소켓.
제 14장 Multicast & Broadcast
네트워킹 CHAPTER 13 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
Department of Computer Engineering
한남대학교 컴퓨터공학과 컴퓨터 네트워크 실험실
Department of Computer Engineering
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 7장 소켓 연결의 우아한 종료 인공지능실험실 석사 2학기 이희재
네트워크 프로그래밍 Yang-Sae Moon Department of Computer Science
Socket Address Structure and Byte Ordering Functions
Department of Computer Engineering
한남대학교 컴퓨터공학과 컴퓨터 네트워크 실험실
Socket Address Structure and Byte Ordering Functions
Homework 6… 12월 2일(금) 11:59pm까지 자신의 이름과 학번을 출력해 주는 유닉스/리눅스 네트워크 소켓 서버 프로그램 과 클라이언트 프로그램 을 작성해 보세요 참고 (실습1) Hello 프로그램 helloserver.c helloclient.c 컴파일.
Internet Address Conversion Functions
7장. UDP 서버-클라이언트 UDP 서버-클라이언트의 기본 구조와 동작 원리를 이해한다.
Department of Computer Engineering
Chapter 06. UDP 서버/클라이언트.
Understanding of Socket and File I/O
Java의 정석 제 15 장 네트워킹(Networking) Java 정석 남궁성 강의
프로젝트 발표 순서 12/7(수), 팀 별 15분 발표순서 PPT (팀 별 이름, 구현 내용, 결과-그래프 포함) 각 기법당
Department of Computer Science and Engineering
13장 고급 입출력 함수 박사 4학기 최 성자.
Chapter 03. 소켓 주소 구조체 다루기.
Socket Address Structure and Byte Ordering Functions
Internet Address Conversion Functions
Socket Address Structure and Byte Ordering Functions
UDP Test 프로그램 분석.
7장. UDP 서버-클라이언트 UDP 서버-클라이언트의 기본 구조와 동작 원리를 이해한다.
Chapter 5 UDP Socket 소켓 프로그래밍.
Sockets Introduction and Protocol Setting
Internet Address Conversion Functions
School of Electronics and Information. Kyung Hee University.
네트워크 프로그래밍의 이해 School of Electronics and Information.
Department of Computer Engineering
Network 네트워크 이론 및 실습 TCP / IP 4장.
Department of Computer Engineering
인터넷 주소변환 School of Electronics and Information. Kyung Hee University.
Understanding of Socket and File I/O
Chapter 04. TCP 서버/클라이언트.
인공지능실험실 박사 1학기 장성만 TCP/IP Socket Programming… 제 8장 도메인 이름과 인터네 주소 인공지능실험실 박사 1학기 장성만
Chapter 03. 소켓 주소 구조체 다루기.
소켓의 생성과 프로토콜의 설정 School of Electronics and Information.
06. 디바이스의 등록과 해제 김진홍
Department of Computer Engineering
Presentation transcript:

소켓 모델 주소 지정 in_addr_t inet_addr(const char *ip_address) 연결 지향 모델 (TCP) 무연결 지향 모델 (UDP) 주소 지정 in_addr_t inet_addr(const char *ip_address)

소켓 인터페이스 AF_INET - 네트워킹을 위한 인터넷 영역을 지정 struct sockaddr_in { AF_UNIX 프로세스들이 동일한 machine에 있을때 사용 struct sockaddr { sa_family_t sa_family; char sa_data[]; } AF_INET - 네트워킹을 위한 인터넷 영역을 지정 struct sockaddr_in { sa_family_t sin_family; in_port_t sin_port; struct in_addr sin_addr; unsigned char sin_zero[8];

소켓 인터페이스 int socket(int domain, int type, int protocol) Domain : AF_UNIX/AF_INET Type : SOCK_STREAM (연결지향), SOCK_DRAM (무연결지향) Protocol: 0 (SOCK_STREAM : TCP, SOCK_DRAM : UDP) - p348 예제 bind는 네트워크 주소와 소켓 식별자를 연관 int bind(int sockfd, const struct sockaddr *address size_t addr_len) bind호출이 성공하면 0, 그 주소에 대한 소켓이 이미 존재하면 -1 #define SIZE sizeof(struct sockaddr_in) struct sockaddr_in server = {AF_INET, 5000, INADDR_ANY} sockfd = socket(AF_INET, SOCK_STREAM, 0); bind(sockfd, (struct sockaddr *)&server, SIZE);

소켓 인터페이스 listen int listen (int sockfd, int queue_size)

소켓 인터페이스 accept 서버가 클라이언트로부터 connect요구를 받으면, 요청을 처리하기 위한 소켓 생성 int accept(int sockfd, struct sockaddr *address, size_t *add_len); return 값은 새로운 소켓 id address 인수는 연결 지향이므로 서술할 필요가 없음 add_len은 처음에는 address에 의해 기술된 주소 구조의 길이, 복귀시는 실제 복사된 바이트수 예제) p351

소켓 인터페이스 connect 서버와의 연결 요청 int connect(int csockfd, const struct sockaddr *address, size_t *add_len) csockfd : 클라이언트 소켓의 파일 디스크립터 address : 서버의 주소 add_len : 주소 구조의 길이 예제) p354

TCP를 사용한 연결형 통신 모델에서의 함수 호출

소켓 인터페이스 recv/send ssize_t recv(int sockfd, void *buffer, size_t length, int flags); ssize_t send(int sockfd, const void *buffer, size_t length, int flags); close - 프로세스가 단절된 소켓에 write/send를 시도하면 SIGPIPE 신호 이러한 경우, 적절한 신호 핸들러를 통해 처리해야 함 - SOCK_STREAM이 사용되면 소켓으로 보내지는 데이터들은 반드시 수신 프로세스로 보내질 것을 보장함 (예제) p359 test1_client.c, test1_server.c

(실습) test_client.c - server에게 “I want the information you have” 전송 - server로부터 받은 내용 출력 - server에게 “Received the information well!” 전송 test_server.c - client로부터 받은 내용 출력 - client로 “This is the information you requested.” 전송

무연결 지향 모델의 프로그래밍 클라이언트와 서버 사이에 전송되는 패킷은 그 목적지에 불확실한 순서로 도착 목적지의 주소를 명시 recvfrom & sendto (예제) p364

무연결 지향 모델의 프로그래밍 차이점 두 모듈 모두 서버에서 소켓을 생성하고 자신의 주소를 socket에 바인드 연결 모델에서는 서버는 들어오는 연결에 대해 반드시 듣기를 시작. 무 연결 모델은 필요가 없음 클라이언트는 연결 모듈에서는 서버에 연결만 함. 무연결 모델에서는 반드시 소켓을 생성하고 자신의 주소를 바인드 해야 함. Send/recv는 두 모델에서 사용 가능. Sendto와 recvfrom은 통상 무연결에서 사용

TCP를 사용한 비연결형 통신 모델에서의 함수 호출