바이트 순서 변환 함수 주소 변환 함수 바이트 조작 함수 원격지 호스트 정보를 얻는 함수

Slides:



Advertisements
Similar presentations
이름과 주소 변환 DNS 해결사 함수 정보통신대학 컴퓨터 학과 도희성 Chap. 11.
Advertisements

1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
HANNAM Univ. 제 3 장 주소 체계와 데이터 정렬 Network Lab. Byoung-Son, Choi TCP/IP Socket Programming…
1 구조체 윤 홍 란 컴퓨터 프로그래밍 2 구조체 정의  구조체란 ? o 서로 다른 형의 변수들을 하나로 묶어주는 mechanism. (cf. 배열 : 같은 형의 변수들을 하나로 묶어주는 mechanism) o 예 : 카드의.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
제14장 동적 메모리.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
Network Lab. Young-Chul Hwang
제 9 장 구조체와 공용체.
-Part2- 제3장 포인터란 무엇인가.
Linux에서의 IP, Port, 네트워크 바이트 순서, 주소 변환 주소 할당 등…
Chapter 03. 소켓 주소 구조체 다루기.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 네트워크 PART 03 프로그래밍 (chapter 01 Socket 프로그래밍) 임효택
Internet Address Conversion Functions
3장. 소켓 주소 구조체 다루기 소켓 주소 구조체의 정의와 초기화 방법을 익힌다.
인터넷 주소 변환 School of Electronics and Information. Kyung Hee University.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
제 14장 Multicast & Broadcast
한남대학교 컴퓨터공학과 컴퓨터 네트워크 실험실
5장. 참조 타입.
Socket Address Structure and Byte Ordering Functions
Heesang kim PL/SQL 3 Heesang kim.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
한남대학교 컴퓨터공학과 컴퓨터 네트워크 실험실
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Socket Address Structure and Byte Ordering Functions
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Internet Address Conversion Functions
Chapter 06. UDP 서버/클라이언트.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
ATmega128 FND 실습 휴먼네트웍스 기술연구소
Chapter 03. 소켓 주소 구조체 다루기.
14장. 포인터와 함수에 대한 이해.
Socket Address Structure and Byte Ordering Functions
Internet Address Conversion Functions
Socket Address Structure and Byte Ordering Functions
Linux Socket Programming - 도메인과 주소체계 -
C#.
WOL(Wake-On Lan) 컴퓨터공학과 4학년 박기웅.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
Internet Address Conversion Functions
School of Electronics and Information. Kyung Hee University.
24장. 파일 입출력.
19. 함수 포인터와 void 포인터.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
윤성우의 열혈 TCP/IP 소켓 프로그래밍 윤성우 저 열혈강의 TCP/IP 소켓 프로그래밍 개정판
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
Chapter 16 Socket Interface.
8주차: Strings, Arrays and Pointers
인터넷 주소변환 School of Electronics and Information. Kyung Hee University.
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
Canary value 스택 가드(Stack Guard).
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
Chapter 04. TCP 서버/클라이언트.
Chapter 02. 윈도우 소켓 시작하기.
MIDP 네트워크 프로그래밍 ps lab 김윤경.
발표자 : 이지연 Programming Systems Lab.
구조체(struct)와 공용체(union)
AdcRead API 함수 분석 마이크로프로세서.
인공지능실험실 박사 1학기 장성만 TCP/IP Socket Programming… 제 8장 도메인 이름과 인터네 주소 인공지능실험실 박사 1학기 장성만
17장. 문자열 01_ 문자열 사용의 기본 02_ 문자열의 사용.
Chapter 03. 소켓 주소 구조체 다루기.
소켓의 생성과 프로토콜의 설정 School of Electronics and Information.
13. 포인터와 배열! 함께 이해하기.
Presentation transcript:

바이트 순서 변환 함수 주소 변환 함수 바이트 조작 함수 원격지 호스트 정보를 얻는 함수 소켓 프로그래밍을 위한 유틸리티 함수들 바이트 순서 변환 함수 주소 변환 함수 바이트 조작 함수 원격지 호스트 정보를 얻는 함수

1. 바이트 순서 변환 함수 Big-Endian Little-Endian - 데이터의 최상위 바이트의 내용을 저장될 메모리의 시작주소에 저장 - 모토로라 마이크로프로세서 및 IBM 메인 프레임 기반 Little-Endian 데이터의 최하위 바이트의 내용을 저장될 메모리의 시작주소에 저장 DEC VAX 컴퓨터 및 인텔 마이크로프로세서

1. 바이트 순서 변환 함수 변환 함수 unsigned short int htons (unsigned short int hostshort); 16비트 기반에 호스트 형식을 네트워크 형식으로 변환하는 함수 unsigned long int htonl (unsigned  long int hostlong); 32비트 기반에 호스트 형식을 네트워크 형식으로 변환하는 함수 unsigned short int ntohs (unsigned short int netshort); - 16비트 기반에 네트워크 형식을 호스트 형식으로 변환하는 함수 unsigned long int  ntohl (unsigned long int netlong); - 32비트 기반에 네트워크 형식을 호스트 형식으로 변환하는 함수

2. 주소 변환 함수 변환 함수 unsigned long int inet_addr (const char * strptr); 32비트 이진 바이너리 주소를 ‘Dotted Decimal' 형식의 문자열로 또는 그 반대로 변환하여 주는 기능 unsigned long int inet_addr (const char * strptr); ‘Dotted Decimal' 문자열 형태의 주소를 네트워크 바이트 순서를 갖는 이진 바이너리로 바꾸는 함수 입력 값이 적절치 못할 경우 INADDR_NONE('-1')을 반환 ’-1‘은 ’Dotted Decimal’ 로 표현 시 ‘255.255.255.255’ 이므로 유효성 검사가 반드시 필요

2. 주소 변환 함수 int inet_aton (const char * strptr, struct in_addr * addrptr); 'Dotted Decimal' 형태의 문자열을 바이너리 형태로 바꾸는 함수 ‘strptr’ 로 들어온 ‘Dotted Decimal' 형태의 문자열은 변환되어 'in_addr' 타입의 ’addrptr‘ 에 저장됨 - 주소가 올바르다면 ‘0’ 이 아닌 값, 그렇지 않다면 ‘0’ 을 반환 char * inet_ntoa (struct in_addr inaddr);  'in_addr' 형의 바이너리 주소 ‘inaddr’을  ‘Dotted Decimal' 형태의 문자열로 변경 반환되는 문자열은 정적으로 할당된 버퍼에 저장 함수의 연속적인 호출은 버퍼를 중복하여 덮어 쓰므로 주의

3. 바이트 조작 함수 void * memset (void * dest, int c, size_t len); 설정한 크기(len) 만큼 해당 값(c)으로 세팅 void * memcpy (void * dest, const void * src, size_t nbytes); 메모리 영역(src)으로부터 해당 사이즈(nbytes)만큼 바이트를 복사하여 목표로 한 주소(dest)에 복사 Int memcmp (const void * ptr1, const void * ptr2, size_t nbytes); 두 주소(ptr1, 2)에 대해 특정 크기(nbytes)만큼 비교 ptr1 < ptr2 → 0 보다 작은 값 ptr1 > ptr2 → 0 보다 큰 값 ptr1 = ptr2 → 0 을 반환

4. 원격지 호스트 정보를 얻는 함수 struct hostent * gethostbyname (const char * hostname); 전달 값으로 호스트의 이름(도메인)을 받아서 hostent 구조체에 결과 값을 돌려주는 함수 struct hostent * gethostbyaddr (const char * addr, size_t len, int family); 호스트의 IP주소(바이너리 형태의 주소)를 이용하여 해당 호스트에 대한 정보를 저장 addr은 호스트 IP 주소이고 len 은 IP 주소의 크기(IPv4 = 4, IPv6 = 16) int gethostname (char * name, size_t namelen); 현재의 호스트 이름을 반환 전달 인자 name은 호스트의 이름을 저장할 곳의 주소 namelen 은 name의 바이트 길이 성공한 경우 반환 값 0, 실패인 경우 반환 값 -1

4. 원격지 호스트 정보를 얻는 함수 struct servent * getservbyname (const char * servname, const char * protoname); 해당 호스트에서 진행되고 있는 서비스에 대한 각 정보를 서비스에 대한 이름과 해당 프로토콜로 얻을 수 있게 해주는 함수 수행 중 에러 발생 시에는 결과 값으로 NULL 반환 struct servent * getservbyport (int port, const char * protoname); 해당 호스트에서 진행되고 있는 서비스에 대한 각 정보를 포트 번호로 얻을 수 있게 해주는 함수

4. 원격지 호스트 정보를 얻는 함수 * hostent 구조체

4. 원격지 호스트 정보를 얻는 함수 * servent 구조체