lesson155 네트워크 프로그래밍 03. 소켓 주소 구조체 다루기 2024. 2. 16. 빅 엔디안과 리틀 엔디안 빅 엔디안과 리틀 엔디안은 바이트 순서를 나타내는 방식이다. 빅 엔디안은 가장 중요한 바이트(최상위 바이트)가 가장 낮은 주소에 저장된다. 예) 32비트 상에서 0x12345678 => 주소 | 바이트 || ============= 0x001 | 0x12 || 0x002 | 0x34 || 0x003 | 0x56 || 0x004 | 0x78 || 리틀 엔디안은 가장 중요한 바이트가 가장 높은 주소에 저장된다. 예) 32비트 상에서 0x12345678 => 주소 | 바이트 || ============= 0x001 | 0x12 || 0x002 | 0x34 || 0x003 | 0x56 || 0x004 | 0x78 || Intel이나 AMD의 CPU가 대다수 리틀 엔디안을 따르고 있는 편이다. 사실상 PC용으로 .. 2024. 2. 6. 자유 저장소와 자동 메모리 메모리 구조에서 힙과 스택은 각각 자유 저장소와 자동 메모리라는 호칭을 가지고 있다. 먼저 자유 저장소라고 하는 힙 영역에 대해 알아보자. 여기서의 힙은 힙 자료구조와는 다르다는 것을 기억할 필요가 있다. 아래에서 설명할 자동 메모리와 다르게 사용자가 직접 할당하고 해제도 해줘야 한다는 특징이 있다. 다음으로 자동 메모리라고 하는 스택 영역에 대해서 알아보자. 자동 메모리에는 자동변수가 사용이 된다. 자동변수에는 기본적으로 auto라는 키워드가 생략되어 있다. 여기서 메모리는 자동으로 관리된다. 자동으로 관리된다는 말의 의미는 무엇인가? 프로그래머가 신경쓰지 않아도 자동으로 메모리를 해제하기 때문이다. 2024. 1. 28. 시스템 프로그래밍 03. 파일 다루기 01. 개요 02. 파일 정보 검색 파일 정보 검색 : stat(2) SYNOPSIS #include #include #include int stat(const char *pathname, struct stat *statbuf); 파일 기술자로 파일 정보 검색 : fstat(2) SYNOPSIS #include #include #include int fstat(int fd, struct stat *statbuf); 03. 파일 권한 접근 제어 파일 접근 권한 검색 : access(2) SYNOPSIS #include int access(const char *pathname, int mode); 파일명으로 접근 권한 변경 : chmod(2) SYNOPSIS #include int chmod(const ch.. 2024. 1. 25. 시스템 프로그래밍 02. 디렉터리 다루기 01 개요 리눅스에서는 파일은 파일면, inode, 데이터 블록으로 구성된다. inode는 번호로 저장되며, 파일의 소유자나 크기 등의 정보와 실제 데이터를 저장하고 있는 데이터 블록의 위치를 나타내는 주소들이 저장되어 있다. 02 리눅스 파일의 특징 리눅스 파일에는 일반 파일, 특수 파일, 디렉토리로 구분할 수 있다. 03 디렉터리 생성과 삭제 디렉터리 생성 : mkdir(2) SYNOPSIS #include #include int mkdir(const char *pathname, mode_t mode); 디렉터리 삭제 : rmdir(2) SYNOPSIS #include int rmdir(const char *pathname); 04 디렉터리 관리 현재 작업 디렉터리의 위치 검색 1 : getcwd(3.. 2024. 1. 25. UNIX 시스템 vi에서 글이 안써질 때 GUI 환경이 일상화된 현재에는 비교적 위와 같은 CLI 기반 텍스트 에디터를 쓸 일이 거의 없지만, 리눅스 서버 등에서 어더한 작업을 하게 된다면 자주 접하게 된다. 그런데 자주 쓰지 않는 상황에서 저러한 VI 기반의 작업을 하게 된다면 타이핑을 치는데 글자도 잘 안나오고 저장도 안되고 헷갈릴 수 밖에 없다. 쓰기 모드로 전환 : i를 누른다 다 쓰고 나면 : esc 버튼을 누른다 저장: ":wq"를 입력하고 엔터 2024. 1. 22. 네트워크 프로그래밍 02. 소켓 시작하기 01. 오류 처리 리눅스에서는 errno.h를 통해 오류 코드 확인 err_quit() 함수와 err_display() 함수 02. 소켓 초기화와 종료 윈속 프로그램은 최초 소켓 함수를 호출하기 전에 반드시 윈속 초기화 함수인 WSAStartup() 함수를 호출해야 한다. 이때 사용 가능한 프로토콜은 운영체제에 따라 다르다. 실습 2-1 윈속 초기화와 종료하기 /// 03. 소켓 생성과 닫기 먼저 소켓을 생성해야 한다. 프로토콜에 따른 주소 체계를 알아야 한다. 소켓 타입에 대해 정확하게 알아야 한다. 프로토콜에는 TCP와 UDP가 존재한다. 마지막에는 소켓을 닫는 과정이 필요하다. 실습 2-2 소켓 생성과 닫기 /// 2024. 1. 19. 통계학 시리즈 1장 https://zpub.tistory.com/164 1. 가설검정 zpub.tistory.com 2장 https://zpub.tistory.com/165 2. 상관분석(1/2) zpub.tistory.com 3장 https://zpub.tistory.com/166 3. 상관분석(2/2) zpub.tistory.com 4장 https://zpub.tistory.com/167 4. 회귀분석(1/2) zpub.tistory.com 5장 https://zpub.tistory.com/168 5. 회귀분석(2/2) zpub.tistory.com 6장 https://zpub.tistory.com/169 6. 범주형 자료분석 zpub.tistory.com 7장 https://zpub.tistory.com/170 .. 2024. 1. 11. 네트워크 프로그래밍 01. 네트워크와 소켓 프로그래밍 인터넷 통신 수행 개체는 호스트와 라우터로 구성된다. 이 때 따라야 하는 규칙이 있다. 이를 통신 프로토콜이라고 한다. 여기서 흔히 L1 ~ L7 스위치라고 부르는 장비들의 명칭이 유래한다. 여기서 각 계층 별로 프로토콜의 구조가 다양하게 존재하는데, 응용 계층 -> TELNET, FTP, HTTP, SMTP... 전송 계층 -> TCP / UDP 인터넷 계층 -> IP 네트워크 접근 계층 -> 장치 드라이버, 네트워크 하드웨어 로 구성된다. TCP와 UDP에 대한 차이점도 꼭 집고 갈만한 주제이다. TCP(Transmission Control Protocol) UDP(User Datagram Protocol) 연결형 프로토콜 - 연결이 설정된 후 통신이 가능하다. 비연결형 프로토콜 - 연결 없이 통신 .. 2024. 1. 4. 네트워크 프로그래밍 00. 시작 목표: TCP/IP 소켓 프로그래밍 공 기간: 2023.12.25 ~ 2023.12.29 (5일) 참고도서: TCP/IP 소켓 프로그래밍 리눅스를 위주로 사용 https://product.kyobobook.co.kr/detail/S000061352062 TCP/IP 소켓 프로그래밍 | 김선우 - 교보문고 TCP/IP 소켓 프로그래밍 | 네트워크 프로그래밍의 체계적인 학습다양한 소프트웨어 프레임워크를 사용해 손쉽게 결과물을 만들어낼 수도 있지만 저수준의 기술을 아예 모르면 문제 발생 시 대처 product.kyobobook.co.kr Chapter 01 네트워크와 소켓 프로그래밍 https://zpub.tistory.com/269 네트워크 프로그래밍 01. 네트워크와 소켓 프로그래밍 인터넷 통신 수행 개체.. 2023. 12. 27. 이전 1 ··· 11 12 13 14 15 16 다음