묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
ntohs() 와 htons() 함수의 차이
void packet_handler(u_char* param, const struct pcap_pkthdr* header, const u_char* pkt_data) // pcap_loop()가 돌면서 패킷을 감지할때 그 때 읽어들인 감청 데이터는 pkt_data 에 들어간다. { EtherHeader* pEther = (EtherHeader*)pkt_data; // 감청 데이터를 EtherHeader 로 형변환 printf( "SRC: %02X-%02X-%02X-%02X-%02X-%02X -> " "DST: %02X-%02X-%02X-%02X-%02X-%02X, type:%04X\n", pEther->srcMac[0], pEther->srcMac[1], pEther->srcMac[2], pEther->srcMac[3], pEther->srcMac[4], pEther->srcMac[5], pEther->dstMac[0], pEther->dstMac[1], pEther->dstMac[2], pEther->dstMac[3], pEther->dstMac[4], pEther->dstMac[5], //ntohs(pEther->type) pEther->type ); } ntohs(pEther->type) 과 htons(pEther->type)이 기능은 똑같다고 하는데, ntohs() 는 네트워크 오더 -> 호스트 오더 이고, htons() 는 호스트 오더->네트워크 오더 아닌가요?제가 Intel 프로세스 탑재한 PC에서 예제 실행중인데, 위 코드와 같이 실행하면 Ipv4 인 type 값이 0008로 나옵니다. 그래서 htons() 로 감싸서 출력하면 0800 으로 잘되는데 ntohs() 로 감쌌을떄는 왜 0800 이 나오는지 모르겠습니다.ntohs() 면 호스트 오더를 사용하는데 제 pc에서는 그대로 호스트 오더 방식으로 되야 하는거 아닌가요?
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
04_MultiIndex 예제에서 질문이 있습니다
안녕하세요 강사님!SearchByIndexAgeRange 함수 안에 있는 코드를 다음과 같이 바꿔서 사용해도 될 것 같아서 변경해보았습니다. void** SearchByIndexAgeRange(int min, int max, unsigned int* pCount) { // unsigned int cntTotal = 0; // USERDATA** aList = (USERDATA**)MakeIndexAge(&cntTotal); unsigned int cntTotal = GetListCount(); USERDATA** aList = g_idxListAge; // 중략... }혹시 이 방식 대신 MakeIndexAge를 사용하신 이유가 있으실까요?
-
해결됨독하게 시작하는 C 프로그래밍
memcpy 내부 구현은 어떻게 아신건가요?
선생님 안녕하세요!자바에서 native 메서드 보다가 선생님 C 강좌까지 와버렸습니다. 메모리 복사 관련한 함수 중 memmove의 내부 동작 원리를 찾다가 강의에서 memcpy를 설명하시는걸 보았습니다. 이때 memcpy 내부 구현이 반복문으로 되어있다고 설명하셨는데 이런 내부 구현은 어떻게 아신건가요?혹시 memmove도 반복문으로 구현이 되어있을까요?
-
해결됨MFC Windows 프로그래밍 - 기본
토글메뉴(강사도 삽질) 10:30 질문 / pch.h 전역변수 선언 에러
안녕하세요. 강사님. pch.hBOOL g_bOption01;pch.cppg_bOption01 = TRUE; 강의(토글메뉴(강사도 삽질) 10:30)와 같이 위와 같이 작성되었을 때, 왜 에러가 발생하는 지 궁금합니다. 어떤 문법에 걸리는 지 궁금합니다. 좋은 강의 제공해주셔서 감사합니다.
-
해결됨독하게 시작하는 C 프로그래밍
강의명 오타
switcht와 i 위치가 바뀌어 있습니다.
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
VMware Ethernet1이 없는 경우
Vmware 윈도우11이 ms사에서 제공하지 않아서따로 윈도우11 이미지를 받아서 VMware player에서 받아서 완전 쌩 윈도우11을 다운받앗는데cmd 창에서 ipconfig를 쳐보니까 Ehternet0 밖에 안뜹니다.
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
socker buffer 에 관하여 문의 드립니다.
안녕하세요 개발자님 오래전 부터 유트브로 보다가, 인프런 할인 할때 한번에 여러개(많이) 수강 하여 듣고 있습니다. TCP 통신 관련 프로세스를 개발 하고 싶어서 문의 드립니다.유트브 이해하면 인생이 바뀌는 TCP 송/수신 원리설명에서 2개의 buffer 가 소개 되었는데요, TCP 와 socker buffer에 대해 문의 드립니다.1.TCP 에 Window Size(buffer) 를 리눅스 에서 실시간으로 조회 할수 있나요? (전은 못찾았습니다)2. socket buffer 을 리눅스 환경에서 실시간으로 조회 가능 한가요? (이것도 찾지 못했습니다.) 3.process 에서 socket에 buffer을 퍼 올려라 하는 말씀과 window size 가 mss 보다 작아지면서 생기는 wait 문제를 해결 하려면 process 부터 확인 하라고 하셧는데, 이 문제는 process 에서 code로 socker 연결 이후 process 내부에 변수로 buffer(사용자 정의)을 선언 하고, socker.recv() 함수를 통해 변수로 선안한 buffer 에 다 적재 하면 process 단에서 TCP 에 쌓이는 문제를 해결 할 수 있다고 생각 해도 되는 걸까요?
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
Windows 11 가상머신 다운로드 이슈 3
https://www.inflearn.com/community/questions/1431457/windows-11-%EA%B0%80%EC%83%81%EB%A8%B8%EC%8B%A0-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C-%EC%9D%B4%EC%8A%88-2위 링크를 참고해서 VMware 가상머신을 다운받고 zip 폴더를 여는데 손상된 파일이라고 뜹니다.확인을 누르니까 압축해제는 동작하길래 압축해제를 눌러봤는데 압축해제를 하는 도중에 아래와 같이 뜹니다.강사님과 동일한 환경에서 학습하고 싶은데 어떻게 해야하나요 ??
-
해결됨독하게 시작하는 C 프로그래밍
단항 증감 연산자 예시 정답
단항 증감 연산자 수업에서 예시로 들었던... int x = 5, y = 10, data = 0; data = ++x + ++y + ++x; printf("data = %d\n", data);의 출력값이 25가 나옵니다. 아무리 생각해도 24가 정답인 것 같은데...
-
해결됨독하게 시작하는 C 프로그래밍
포인터 변수 크기 질문
안녕하세요.포인터 변수 기본 문법 강의를 듣다가 강사님 말씀하신 부분 중이해가 잘 안가는 부분이 있어 질문 드립니다.2:27초쯤에 1바이트마다 64비트가 붙는게 아니다 라고 말씀하셨는데,제가 이해한 바로는 포인터 변수의 크기는 운영체제 즉,64bit 운영체제는 64bit, 32bit 운영체제는 32bit 크기로 지정되는 것이고 이 포인터는 변수의 자료형(메모리 크기)이 얼마가 됬건간에 운영체제에 따라 고정된다라고 이해했습니다.그런데 말씀하신 1바이트마다 붙는게 아니다 라는 부분이 제가 이해한 것처럼 자료형의 크기 1바이트를 말씀하신 것인지, 아니면 변수가 여러 개 일 때, 각 변수마다 할당된 1바이트를 말씀하신 것이지 잘 이해가 안갑니다.
-
해결됨MFC Windows 프로그래밍 - 기본
CMainFrame과 CCreateDemoView와의 관계 (교과서 p80 그림3-3)
안녕하세요. 강사님. CCreateDemoView이 CMainFrame의 자식이라고 하셨는데, 이 부분이 MFC 코드 안에 명시가 되어있지 않는 것 같습니다. 혹시 확인할 수 있는 방법이 있을까요? 오늘도 좋은 하루 보내세요.감사합니다.
-
해결됨독하게 시작하는 C 프로그래밍
별찍기 (트리) 이런식으로 로직을 구현해봤는데 괜찮을까요?
저는 이런식으로 생각해서 풀었는데, 강사님 해설 보니까 머리를 한 대 맞은 것 같네요 ㅎㅎㅎ.....
-
해결됨독하게 시작하는 C 프로그래밍
보수에 대해 이해가 안됩니다.
선생님 안녕하세요! 수업 중 강의를 듣다가 보수에 대한 이해가 되지 않아 질문드립니다.보수란 보충해주는 수 라고 알고있습니다.강의에서 1의 보수는 어떤 수에 대해서 더해서 1이 되는 수라고 말씀하셨고 1의 보수를 구하는 예시로 2진수 1100에 대한 1의 보수를 구하는 방법으로 NOT연산을 하여 0011을 만들 수 있었습니다.그럼 1100에 대한 1의 보수가 0011이라고 이해했습니다.즉 1100 + 0011을 하면 10진수 1또는 2진수 0001 이 나와야한다고 이해했습니다.그러나 실상은 2진수 1111로 10진수로는 15가 되어버립니다. 분명 1의 보수를 구한거면 더해서 1되는 수라고 말씀하셨는데 15가 계산이 되는데 제가 어느 부분에 대한 개념을 못잡고 있는걸까요?
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
Windows 11 가상머신 다운로드 이슈 2
Windows 11 가상머신 다운로드가 안되는 부분에 대해서,커뮤니티에서 댓글 주신 부분 확인해보았으나, 항목이 삭제 또는 완료 되었다고 나옵니다..ㅠㅠhttps://www.inflearn.com/questions/1412974MS사 내부 문제라 제가 대응하는 것이 불가능합니다. 해서 이 강의를 촬영할 당시 사용했던 VM을 OneDrive에 올려두었습니다. 24년 4월 VM입니다. 따라서 이미 라이선스는 만료된 상황입니다. 하지만 일단 사용은 가능할 것입니다. 감사합니다. 😄 WinDev2404Eval.VMWare.zip
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
헤드노드에 관해..
계속 그리면서 이해하다가 딜레마에 빠져 질문드립니다 ..새 노드 추가할때의 그림을 그려보며 이해중이였는데,else{pNewNode->pNext = g_pHeadNode;g_pHeadNode = pNewNode;}이 코드는 이미 헤드노드가 가리키는 '원래노드'가 따로 있는건데그렇다면 pNewNode의 pNext엔 헤드노드 주소값을 넣으면pNewNode는 AddNewNode에서 초기화된 각자의 멤버값을 가지면서 pNext를 따라가면 헤드노드가 나오게 되고, 그 헤드노드의 pNext를 따라가면 '원래노드'가 나오게 되는데그 상태로 g_pHeadNode = pNewNode; 를 수행하게 되면 헤드노드에 pNewNode값이 오버라이트되게 되는건데 그럼 이 상황에선기존헤드노드에 뉴노드멤버들의 값들과 pNext엔 헤드노드의 주소값, 이걸 따라가면 뉴노드멤버들의 값들과 pNext엔 헤드노드가 가리켰던 '원래노드'의 주소값, 이걸 따라가면 '원래노드'멤버들의 값과 pNext값 . . . 이렇게 생각하면 되는건가요 ?그럼 결국엔 이 상황에선 g_pHeadNode와 pNewNode는 pNext를 제외한 모든 멤버변수들이 같은값을 가지고 있는 상황인거라고 해석하면 되는건가요 ? ( 뭔가 3개의 노드가 다 다른 멤버변수값을 가져야할것만 같은데, 2개의 노드가 같은 멤버변수값을 가지는거같아 이상하여 이해한게 맞나, 아니면 개념을 잘못잡은건가 싶어 질문드립니다 )질문이 길어져 죄송합니다 . . .
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
AddNewNode 함수 구현시 질문입니다.
void AddNewNode(int age, char pszName, char pszPhone){USERDATA* pNewNode = (USERDATA*)malloc(sizeof(USERDATA));pNewNode->age = age;strcpy_s(pNewNode->name, sizeof(pNewNode->name), pszName);strcpy_s(pNewNode->phone, sizeof(pNewNode->phone), pszPhone);pNewNode->pNext = NULL;강사님 위 코드 볼드체부분에서 pNewNode 포인터값이 널값임에 따라 역참조 경고가 발생합니다.그러나 제 생각에는 malloc함수로 할당받은 힙메모리 주소가 담겨져 있을 것인데 왜 이런 오류가 발생하는지 궁금합니다.
-
해결됨독하게 시작하는 C 프로그래밍
realloc 질문
예제 파일을 보고 있던중에 들은 생각인데요, free(pszBuffer) 를 하지 않는 이유는 무엇인가요
-
해결됨독하게 시작하는 C 프로그래밍
동적 메모리 할당 관련 질문 있습니다.
개발자 님께서 제공해주신 예제 파일에 제 맘대로 주석을 달아봤습니다.18 행에 오류 확인을 위해 의도적으로 해제하지 않음 이라는 주석이 처음부터 달려있었는데메모리 해제를 하지 않아도 런타임 오류는 발생하지 않더라구요. 18 행 주석의 의도가 무엇인지 궁금합니다!
-
해결됨독하게 시작하는 C 프로그래밍
문자열 은 [가변]
문자열이 가변 이라고 말씀하셨는데어떻게 받아들여야할지 잘 모르겠습니다.무엇이 어떻게 변하는걸까요
-
해결됨Windows 시스템 프로그래밍 - 기본
64 bit 운영체제라면 가상메모리가
2 ^ 64 = 16 엑사바이트 (EB)로 나오는데32비트 운영체제와 비교했을 때 크기가 너무 차이가 나서 어색합니다..찾아보니 전부다 사용하는 게 아니라 일정 부분만 사용한다고 하는데 64 비트 운영체제의 가상메모리 크기와, 유저모드, 커널모드 크기가 어떻게 되는지 알 수 있을까요