본문 바로가기

컴퓨터

C bind() I. syntax #include int bind(int sockfd, struct sockaddr* myaddr, socklen_t addrlen); II. return 성공 시 0, 실패 시 -1 반환 III. parameters 1. int sockfd 주소정보를(IP와 PORT를) 할당할 소켓의 파일 디스크립터 2. struct sockaddr* myaddr 할당하고자 하는 주소정보를 지니는 구조체 변수의 주소 값. 서버의 주소정보 표현을 위해 만든 sockaddr_in 구조체(serv_adr)를 사용한다. (struct sockaddr*)&serv_adr 3. socklen_t addrlen 두 번째 인자로 전달된 구조체 변수의 길이정보 sizeof(serv_adr)
C socket() I. syntax #include #include int socket(int domain, int type, int protocol); II. return 성공 시 파일 디스크립터, 실패시 -1 반환 III. parameters 1. int domain 이름 프로토콜 체계(Protocol Family) PF_INET IPv4 인터넷 프로토콜 체계 PF_INET6 IPv6 인터넷 프로토콜 체계 PF_LOCAL 로컬 통신을 위한 UNIX 프로토콜 체계 PF_PACKET Low Level 소켓을 위한 프로토콜 체계 PF_IPX IPX 노벨 프로토콜 체계 2. int type 타입 의미, 특징 SOCK_STREAM 연결지향형 소켓(tcp) 중간에 데이터가 소멸되지 않고 목적지로 전송된다. 전송 순서대로 데이터가..
C soket 소켓 생성 과정 I. server 1단계. 소켓 생성. socket 함수 호출 비유하자면, 전화기의 장만 단계이다. #include int socket(int domain, int type, int protocol); 성공 시 파일 디스크립터, 실패시 -1 반환 2단계. IP주소와 PORT번호 할당. bind 함수 호출 비유하자면, 전화번호의 부여 단계이다. #include int bind(int sockfd, struct sockaddr *myaddr, socklen_t addrlen); 성공 시 0, 실패 시 -1 반환 3단계. 연결요청 가능상태로 변경. listen 함수 호출 비유하자면, 전화기의 케이블 연결 단계이다. #include int listen(int sockfd, int backlog); 성공 시 0,..
C module 모듈화 I. extern 키워드 1. module.c 1 int i=10; 2 static int j = 20; //static 키워드로 외부 접근을 방지한다. 3 4 int increase(int a); 5 6 int increase(int a) { 7 return a++; 8 } 2. main.c 1 #include 2 3 extern int i; 4 //extern int j; 에러! 외부 접근이 허용되지 않았다. 5 extern int increase(int a); 6 7 int main() { 8 printf("%d\n", increase(i)); 9 return 0; 10 } II. header 위의 main.c 코드에서 3~5부분은 경우에 따라 엄청나게 길어질 수 있다. 이 부분을 헤더 파일로 분리..
C Macro 매크로 I. 전처리기 지시자 #define II. 매크로 상수 선언 #define PI 3.14 PI를 3.14로 치환한다. ※ 매크로 선언에는 ';'를 붙이지 않는다. III. 매크로 함수 선언 #define SQUARE(x) x*x 매크로 함수는 자료형에 독립적이다. 함수의 호출 때문에 발생하는성능의 저하가 일어나지 않으니 실행 속도를 향상시킨다. 단, 함수 호출 문장이 전부 매크로 함수 몸체 부분으로 완전히 치환되어 버리기 때문에 코드의 크기는 커진다. 그래서 함수의 크기가 한 두줄 정도로 작으면 매크로 함수로 정의하면 좋다. IV. 매크로 특징 1 #include 2 3 #define string "C++ Compatible C" 4 #define cal (3*4)+(12/4) 5 6 #define ON..