# language/[ C & C++ ]

안녕하세요 허언증입니다. vector 컨테이너는 동적 배열과 유사한 개념 기존의 배열 혹은 동적 배열과 마찬가지로 vector를 선언하면 자동으로 메모리 할당, 원하는 원소를 추가, 삭제, 접근 등 배열에서 할 수 있는 기능들을 쉽게 사용할 수 있다. ■ 사용방법 1.헤더파일 #include 2.선언방법 (1). vector name // 1차원 배열 (2). vector name(N, vector(3, 0)); // 2차원 배열 코드 설명 vector name(N, vector(3, 0)); ㄴvector형 벡터 N개(가로 N줄)를 할당 한다는 뜻입니다. vector arr(N, vector(3, 0)); ㄴ모든 가로 줄은 3개 짜리 0으로 초기화 된 익명의 int 벡터 배열을 생성하여 초기값으로 넣게..
안녕하세요. 허언증입니다. 알고리즘 문제 풀시 오버 다른 코드를 참고를 할 때 int, long, float, double 외 다양한 자료형을 볼 수 있고 네트워크를 공부를 하다보니 확실히 알고 다양하게 알아야 한다는걸 확실히 느꼈다. 기초 중요 ▼ 정수 자료형의 크기 및 범위(LLP64/IL32P64, Windows) char signed char 1바이트, 8비트 -128~127 unsigned char 1바이트, 8비트 0~255 short short int 2바이트, 16비트 -32,768~32,767 int 생략 가능 unsigned short unsigned short int 2바이트, 16비트 0~65,535 int 생략 가능 int signed int 4바이트, 32비트 -2,147,483..
안녕하세요. 허언증입니다. WSAEventSelect() 함수 / WSAGETSELECTEVENT() 함수 FD_XXX를 자주 볼 수있는데 기초가 되는 select()를 통해 기초를 습득하자 C++ 소켓 통신을 하다가 몰랐던 부분을 찾아봤다. ♣ fd_set 구조체 fd_set 구조체는 File Descriptor (이하 FD) 를 저장하는 구조체이다. 안에 내용을 보면 그냥 배열로 여기면 편하다. 구조체 내용은 OS마다 조금씩 다른 듯 하다. ubuntu14기준 - /usr/include/sys/select.h 에서 위 구조체를 확인할 수 있었다. ♣ FD_SET fd_set 구조체에 2와 5의 FD 를 저장한다고 하면, 두번째 비트와 다섯번째 비트가 1로 변경된다. 값 저장은 FD_SET 매크로를 쓴..
안녕하세요 허언증입니다. 소켓통신에서 데이터 송수신 함수로는 send, recv / sendto, recvfrom 이 있다. (1) 함수원형 ○ send(int sockfd, const void *buf, size_t len, int flags) ○ recv(int sockfd, const void *buf, size_t len, int flags) ○ sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen) ○ recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, soc..
안녕하세요 허언증입니다. 참고 recv function (winsock2.h) - Win32 apps Receives data from a connected socket or a bound connectionless socket. docs.microsoft.com recvfrom function (winsock2.h) - Win32 apps The recvfrom function receives a datagram and stores the source address. docs.microsoft.com recv() recv() 함수는 소켓으로부터 데이터를 수신합니다. #include int recv(int s, void *buf, size_t len, int flags); int s : 소켓 디스크립터 ..
안녕하세요 허언증입니다. 참고 send function (winsock2.h) - Win32 apps Sends data on a connected socket. docs.microsoft.com sendto function (winsock2.h) - Win32 apps The sendto function sends data to a specific destination. docs.microsoft.com Send() send() 함수는 연결된 서버나 클라이언트로 데이터를 전송합니다. #include int send(int s, const void *msg, size_t len, int flags); int s : 소켓 디스크립터 void *msg : 전송할 데이터 size_t len : 데이터의 바이트..
안녕하세요 허언증입니다. 구조체를 초기화 할때 사용하는 방법은 총 3가지! 1. ZeroMemory() #incldue void ZeroMemor(){ PVOID Destination, Size_T Length } Destination : 0으로 채울 메모리 시작 포인터 Length : 받는 포인터 크기 2. memset() #include void* memset(vodi* ptr, int value, size_t num) ptr : 채울 메모리 시작주소 value : 채우는 값 int 형이지만 u_char(1byte)로 변환되어 저장 num : 채우는 크기 3. Struct s = {0}; 어셈블리어 코드를 확인하면 차이는 없다 결국 memset() 호출해서 사용하기 때문에 ZeroMemory() v...
안녕하세요 허언증입니다. 주소를 표현하기 위해 사용하는 구조체 sockaddr_in 안에서 IP를 나타내기 위한 데이터 타입은 unsigned long형입니다. 그래서 IP주소 정보를 할당 하기 위해서 문자열의 "192.168.10.10"을 unsigned long 으로 바꿔주어야 합니다. 참고로 "192.168.10.10"의 표현방식은 Dotted-Decimal Notation 즉, 십진수 표현 방식 이라고 말합니다. 계산을 해서 unsigned long으로 바꿀 수 있지만 그렇게 할 필요가 없습니다. 바꿔주는 함수가 있기 때문이죠 이런 함수들을 인터넷 주소 조작 함수라고 하는데 이 함수들은 단순히 변환만 시켜주는게 아니라 바이트 순서를 바꿔주는 일도 해줍니다. 그럼 하나하나 살펴보겠습니다. 1. in..
이론과 실습 사이
'# language/[ C & C++ ]' 카테고리의 글 목록