728x90
반응형
SMALL

분류 전체보기 50

[Network] 프로토콜 & IP

프로토콜, IP주소/포트번호 에 대한 정리(+ 인터넷 주소 초기화 예제) 프로토콜(Protocol)컴퓨터간 데이터를 주고 받기 위해 정의해 놓은 통신 규약프로토콜 체계(Protocol Family)PF_INET : IPv4 인터넷 프로토콜 체계PF_INET6 : IPv6 인터넷 프로토콜 체계PF_LOCAL : 로컬 통신을 위한 UNIX 프로토콜 체계PF_PACKET : Low Level 소켓을 위한 프로토콜 체계PF_IPX : IPX 노벨 프로토콜 체계소켓물리적으로 연결된 네트워크상에서 데이터 송수신에 사용할 수 잇는 소프트웨어적 장치네트워크 연결망에 사용되는 도구소켓의 타입(Type)소켓의 데이터 전송 방식연결지향형 소켓(SOCK_STREAM) : TCP => 신뢰성 보장, 순서 유지, 1:1연결비 연..

Network 2023.09.06

[OS] 빅 엔디안 & 리틀 엔디안

데이터 저장 방식인 빅 엔디안, 리틀 엔디안에 대한 정리 CPU 데이터 저장방식(Host Byte Order)연속된 바이트를 메모리에 저장할때 어떤 순서로 저장할지 정하는것데이터는 컴퓨터에 Byte 단위로 저장됨 빅 엔디안(Big Endian)상위 바이트 값을 작은 번지수에 저장하는 방식RISC CPU 정수 0x12345678 저장리틀 엔디안(Little Endian)상위 바이트 값을 큰 번지수에 저장하는 방식인텔 CPU 정수 0x12345678 저장 바이트 순서의 문제빅 엔디안 CPU ---- 0x1234 전송 ---->  리틀 엔디안 CPU(0x3412로 해석)=> CPU마다 데이터 저장 순서가 다르기 때문에 데이터를 주고 받을 때 문제 발생 가능 네트워크 바이트 순서(Network Byte Orde..

OS/All 2023.09.05

[Programmers] 단어 변환

프로그래머스 단어 변환 C++ 풀이 정리단어 변환문제 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다.1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다.2. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin이 "hit", target가 "cog", words가 ["hot","dot","dog","lot","log","cog"]라면 "hit" -> "hot" -> "dot" -> "dog" -> "cog"와 같이 4단계를 거쳐 변환할 수 있습니다.두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과..

Algorithm 2023.09.04

[Visual Studio] winsock 함수 링크 에러 해결

Visual Studio 에서 winsock을 사용할 때 발생하는 링크오류 해결 방법에 대한 정리오류 내용windows 환경에서 통신 모듈 구현을 위해 winsock을 사용하여 아래와 같이 코드를 작성하고 실행할 경우 오류 발생#include int main(void) { WSAStartup(MAKEWORD(2, 2), &wsaData); serv_sock = socket(PF_INET, SOCK_STREAM, 0); bind(serv_sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr)); listen(serv_sock, 5); clnt_sock = accept(serv_sock, (struct sockaddr*)&clnt_addr,..

OS/Windows 2023.09.01

[Linux] gcc, g++ 컴파일

리눅스환경에서 c, cpp 소스 코드를 컴파일 하는 방법 gcc, g++ 설치 $sudo apt-get update $sudo apt-get install gcc $sudo apt-get install g++ 컴파일 환경 ubuntu 18.04 gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 g++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 c 소스 코드 컴파일 명령어 gcc [파일명].c -o [출력할 파일 명] gcc client.c -o hClient c++ 소스 코드 컴파일 명령어 g++ [파일명].cpp -o [출력할 파일 명] g++ client.cpp -o hClient -lstdc++ 옵션을 붙일 경우 gcc로 c++ 소스 코드 컴파일 가능 gc..

OS/Linux 2023.08.30

[C] 공용체(union) 사용법 및 예제

공용체(union)에 대한 정리(+예제)공용체(union)같은 메모리 주소 안에서 여러 형식을 가질 수 있는 값한 번에 한 가지의 데이터 형만 보관할 수 있는 구조체모든 멤버 변수가 같은 메모리를 공유하므로, 공용체는 한 번에 하나의 멤버 변수만 사용공용체 정의union Person { char* name; int age; double weight;};각 자료형 중 가장 큰 자료형의 크기만큼 공간을 할당받아 공용으로 사용char*는 4byte(32bit 기준), int는 4byte, double은 8byte이기 때문에 가장 큰 크기인 8byte를 할당받음 공용체 선언 및 예제int main(void) { union Person student = { "0so0" }; printf("크기 : %d\n", s..

Language/C 2023.08.28

[BAEKJOON] 11724 연결 요소의 개수

백준 11724 연결 요소의 개수 C++ 풀이 정리 11724 연결 요소의 개수 문제 방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오. 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어진다. 입력 6 5 1 2 2 5 5 1 3 4 4 6 첫째 줄에 연결 요소의 개수를 출력한다. 출력 2 풀이 방향이 없는 그래프라는 점을 고려해 입력 받고 DFS나 BFS중 한가지를 선택하여 풀면 됨 모든 노드에 대해서 탐색을 수행해야하고, 한개의 노드마..

Algorithm 2023.08.24

[Programmers] 타겟 넘버

프로그래머스 타겟 넘버 풀이 정리 타겟 넘버 문제 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 각 숫자는 1 이상 50 이하인 자..

Algorithm 2023.08.23

[BAEKJOON] 3190 뱀

백준 3190 뱀 풀이 정리 3190 뱀 문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다. 뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따른다. 먼저 뱀은 몸길이를 늘려 머리를 다음칸에 위치시킨다. 만약 벽이나 자기자신의 몸과 부딪히면 게임이 끝난다. 만약 이동한 칸에 사과가 있다면, 그 칸에 있던 사과가 없어지고 꼬리는 움직이지 않는다. 만약 이동한..

Algorithm 2023.08.17

[JSON] JSON 정의 및 사용 방법

JSON의 정의와 간단한 사용법에 대한 정리(+C#으로 작성한 예제) JSON JavaScript Object Notation 데이터를 다른 플랫폼에서 해석 가능한 형식으로 전달할때 사용하는 경량의 DATA-교환 형식 주로 클라이언트 서버간 HTTP 통신을 위해 사용 JSON 데이터 유형 String : 유니코드 문자열로 구성 { "Name": "0so0" } Numebr : 실수, 정수 { "Index": 1, "Temperature" : 37.5, } Bool : true, false { "Status" : true } JSON 형식 { "Visit list": [ { "Index": 1, "Name": "0so0", "Temperature" : 37.5, "Status" : true }, { "In..

Network 2023.08.17
728x90
반응형
LIST