공부 50

20201005 월요일 정리

TCP 연결형 연결형이란 IP와 PORT를 메모리에 기억하고 있는 상태 클라이언트가 연결을 정상적이지 않은 방법으로 끊었을 경우 (PC가 꺼지거나 네트워크선이 뽑히는 등) 서버에서는 언제 연결이 끊겼는지 알 수 있나? 서버에서 클라이언트에 패킷을 보냈을 때의 응답 유무로 연결이 끊겼는지 확인 하트비트 - 연결이 끊겼는지 L7차원에서 확인 (클라 -> 서버) 신뢰성 일대일 데이터 경계 구분 없음 UDP 비연결형 비신뢰성 일대다 (브로드캐스트, 멀티캐스트) 데이터 경계 구분 있음 TCP가 커널에서 하는 일이 더 많다 상대방의 버퍼 확인 양쪽 (클라/서버) 송신버퍼 수신버퍼 100바이트를 두번 송신 send(100) send(100) 수신 버퍼에 처리되지 않은 60바이트의 데이터가 있을 경우 송신측에서는 데이..

공부 2020.10.06

IPv4 서브넷 연습

사설네트워크 나누기 연습 사설네트워크 : 10.0.0.0/8 본사 부서 : 10개 부서 인원 : 10인 이하 6개 부서, 20인 이하 4개 부서 지사 5개 부서 : 6개 인원 : 2인 부서 3개, 7인 부서 2개, 15인 부서 1개 크게 먼저 나누면 본사 10.0.0.0/16 (11111111.11111111.00000000.00000000) 지사1 10.1.0.0/16 지사2 10.2.0.0/16 지사3 10.3.0.0/16 지사4 10.4.0.0/16 지사5 10.5.0.0/16 8bit 메이저비트 + 8bit 서브넷비트 지사255 까지 확장 가능 먼저 본사를 나누자! 최대 필요 호스트비트개수를 더 많은 수인 20인 이하를 기준으로 구한다 20인 이하 부서 호스트비트 5개(2^5 - 2 = 30) 로..

공부 2020.09.26

20200918 테스트 오답노트

오늘은 테스트를 치뤘다 그리고 틀렸던 부분과 지적받았던 부분에 대해 기록 남긴다 1. c++ virtual 함수 2. 함수 내 static 변수는 메모리에 언제 등록이 되는가? 3. volatile 키워드 4. 캐시 히트율 1. c++ virtual 함수 아래 코드의 출력결과는? #include class A { public: virtual void Func() { printf_s("A::Func\n"); } }; class B : public A { void Func() { printf_s("B::Func\n"); } }; class C : public B { void Func() { printf_s("C::Func\n"); } }; int main() { C c; A* a = &c; a->Func()..

공부 2020.09.18

20200917 공부

아이템 확률 퀵정렬 문자열 링크드리스트 아이템 확률 아이템 확률대로 아이템을 뽑아보자 아이템, 빈도수 A, 20000 B, 1 C, 20000 D, 30000 A + B + C + D = 70001 1부터 70001 사이의 숫자를 랜덤하게 생성 if 숫자가 20000 보다 작으면 A아이템 else if 숫자가 20001 보다 작으면 B아이템 else if 숫자가 40001 보다 작으면 C아이템 else if 숫자가 70001 보다 작으면 D아이템 100만번 뽑아서 각각의 아이템이 나온 개수 출력 #include #include #include int items[] = { 20000, 1, 20000, 30000 }; int main() { srand(time(0)); int itemRange[4]; in..

공부 2020.09.18

20200916 공부

엔디언 함수포인터 switch case 구조체 패딩 엔디언 메모리 저장 방법 리틀엔디언 하위->상위 빅엔디언 상위->하위 함수포인터 함수포인터를 배열에 넣고 사용해보기 #include int sum(int a, int b) { return a + b; } int sub(int a, int b) { return a - b; } int mul(int a, int b) { return a * b; } int main() { int (*calcs[3])(int, int); calcs[0] = sum; calcs[1] = sub; calcs[2] = mul; int a = calcs[0](10, 20); int b = calcs[1](20, 10); int c = calcs[2](10, 2); return 0; ..

공부 2020.09.16

BMP 파일 이미지 데이터 읽기

BMP 파일의 구조 상관없이 이미지 데이터를 읽어서 출력하고 싶었다 나중에 복붙해서 사용할 용도이기도 하다 컬러비트가 다르거나 BITMAPINFOHEADER의 크기가 달라도 32비트 이미지 데이터형식으로 읽어오도록 코드를 작성했다 char* imgData; int width; int height; int colorByte; int pitch; int imgSize; bool LoadDib32Bit(const wchar_t* fileName) { FILE* file; if (_wfopen_s(&file, fileName, L"rb") != 0) return false; BITMAPFILEHEADER bmfh; fread_s(&bmfh, sizeof(bmfh), sizeof(bmfh), 1, file); i..

공부 2020.09.13

20200905 공부

소켓 옵션 코딩 연습 소켓 옵션 소켓 옵션 관련 함수 소켓 옵션을 설정할 때는 setsockopt() 함수를 사용 현재 설정된 소켓 옵션 값을 얻을 때는 getsockopt() 함수를 사용 setsockopt() 함수와 달리 getsockopt() 함수는 마지막 인자가 값-결과 인자임에 주의 SOL_SOCKET 레벨 소켓 옵션 optname optval 타입 get set 설명 SO_BROADCAST BOOL o o 브로드캐스팅 데이터 전송 허용 여부 SO_KEEPALIVE BOOL o o 주기적으로 연결 상태 확인 여부 SO_LINGER LINGER{ } o o 소켓 송신 버퍼에 미전송 데이터가 있을 때 closesocket( ) 함수의 리턴 지연 시간 설정 SO_SNDBUF SO_RCVBUF int ..

공부 2020.09.05

20200904 공부

1. 문제풀이 2. 스레드 동기화 3. UDP 서버 - 클라이언트 4. 브로드캐스팅 1. 문제풀이 1. DDB와 DIB의 차이에 대해 서술하시오. BMP파일은 어떤 쪽에 해당하며, 우리가 WinAPI를 통해 그림을 찍으려면 BMP파일을 어떻게 해야 되는지 DIB와 DDB관점에서 설명하시오. DDB (Device Dependent Bitmap) GDI에서 DC와 연결되는 Bitmap을 DDC라 한다 출력 장치에 종속적 이미지의 크기, 색상 등 기본적인 정보와 이미지 데이터로 구성 DIB (Device Independent Bitmap) 출력 장치에 독립적 DDB에 비해 색상 테이블, 해상도 정보 등의 추가 정보를 가지므로 장치에 종속되지 않음 BMP파일은 DIB에 해당한다 출력은 .. 다른점을 잘 모르겠다..

공부 2020.09.04

20200903 공부

1. 문제 만들기 2. 멀티스레드 1) 스레드 생성과 종료, 인자 전달 연습 2) 스레드 우선순위 변경 연습 3) 스레드 실행 제어와 종료 기다리기 연습 4) 멀티스레드 TCP 서버 1. 문제 만들기 1) x86 함수 호출 규약 (1), (2), (3) 에 해당하는 값을 채우시오. 규약 인자 전달 순서 인자 전달 매체 Stack을 정리하는 함수 cdecl ← Stack ( 2 ) stdcall ( 1 ) Stack ( 3 ) fastcall ← Register + Stack Callee 2) 함수 포인터 ( ? ) 부분을 채워서 코드를 완성하시오 int Sum(int a, int b) { return a + b; } int main() { ( ? ) int res = FuncSum(10, 20); ret..

공부 2020.09.03
반응형