묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
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 폴더를 여는데 손상된 파일이라고 뜹니다.확인을 누르니까 압축해제는 동작하길래 압축해제를 눌러봤는데 압축해제를 하는 도중에 아래와 같이 뜹니다.강사님과 동일한 환경에서 학습하고 싶은데 어떻게 해야하나요 ??
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
이벤트 기반 파일 입출력과 callback 기반 파일 입출력이 네트워크에도 쓰이는 기법인가요?
안녕하세요.이벤트 기반 파일 입출력과 callback 기반 파일 입출력에 대해 궁금한 점이 있어 질문 드립니다.IOCP를 설명하시기 전 단계에서 이벤트 기반 파일 입출력과 callback 기반 파일 입출력에 대해 설명을 해주셨는데, 이 두 기법은 네트워크에서도 쓰이는 기법인지 아니면 IOCP를 설명하기 위한 베이스 기법으로서 설명을 해주신 건지 궁금합니다
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
개발환경 질문이 있습니다.
장애발생 관련해서 PC 2대가 있는게 좋다고 하셨는데 혹시 가상머신으로는 괜찮을까요
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
TCP/IP vs UDP , 멀티 스레드에서의 병목 현상에 대한 질문이 있습니다!
안녕하세요! 항상 좋은 강의 감사합니다.강의를 듣다가 궁금한 점이 있어서 질문을 드립니다!Q1.TCP/IP 의 경우 서버 입장에서 사용자가 연결되어 있다는 착각에 빠지지 말라고 알려주셨습니다. 하트비트를 어차피 보내줄 것이라면 UDP 로 설계를 해도 상관없는 건가요?연결을 신뢰할 수 없음에도 TCP/IP를 사용하는 이유가 궁금합니다.Q2.멀티 스레드 환경에서 GQCS를 할 경우, 스레드들이 공유하는 큐에 락을 걸어서 적용해봤습니다. 하지만 이 경우 큐에 접근할 때 병목 현상이 우려됩니다. 해당 세션이 특정 스레드에서만 처리되도록 하여 락을 없애는 것과 락을 걸고 여러 스레드에서 접근할 수 있도록 하는 것 중 어느 것을 선호하시나요? Q3. 어쩌면 Q2와 거의 같은 질문일 수도 있겠습니다. 멀티-스레드 환경에서 락 에 대한 대안이 있나요?
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
Windows 11 가상머신 다운로드 이슈 2
Windows 11 가상머신 다운로드가 안되는 부분에 대해서,커뮤니티에서 댓글 주신 부분 확인해보았으나, 항목이 삭제 또는 완료 되었다고 나옵니다..ㅠㅠhttps://www.inflearn.com/questions/1412974MS사 내부 문제라 제가 대응하는 것이 불가능합니다. 해서 이 강의를 촬영할 당시 사용했던 VM을 OneDrive에 올려두었습니다. 24년 4월 VM입니다. 따라서 이미 라이선스는 만료된 상황입니다. 하지만 일단 사용은 가능할 것입니다. 감사합니다. 😄 WinDev2404Eval.VMWare.zip
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
메모리 관련 문제로 질문드립니다.
IOCP 서버를 클래스로 만들어 보려고 하고 있습니다.Thread 생성까지 오류 없이 되다가 Client가 접속되면 문제가 발생합니다.디버깅 결과 client_list는 메모리 할당이 되었으며 clientSocket이 정상적으로 도착한 상태입니다.하지만 위의 사진과 같이 push_back을 하려고하면 오류가 발생합니다. 해당 쓰레드의 함수는 class 내부의 메소드로 정의 및 구현되어있습니다.socket_list와 socket_cs를 class 외부에서 정의했을 때에도 같은 현상이 발생합니다.참고할만한 레퍼런스나 해결법이 있을까요?
-
미해결이해하면 인생이 바뀌는 네트워크 프로그래밍
Windows 11 가상머신 다운로드 이슈
Due to ongoing technical issues, as of October 23, 2024, downloads are temporarily unavailable.Windows 11 가상머신 다운로드가 안된다고 나옵니다.
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
Basic_dump 수행 오류
안녕하세요 항상 좋은 강의 감사드립니다. 상기에서 5번/6번을 누르면 데이터가 트래킹이되는데 다른 번호는 트레킹이 안됩니다. (7번/8번 포함) VMware가 트레킹이되면 정상적으로 빌드된거같은데 혹시 사유추정이 가능할지 문의드립니다.
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
테스트 환경 질문드립니다!
안녕하세요!아파트에 거주하고 있습니다.저희 세대로 들어오는 네트워크 신호를 담당하는 기기가 신발장 안쪽에 있고 굉장히 여러 케이블이 꽂혀 있습니다. 가끔씩 집 컴퓨터 인터넷이 안 될 때가 있는데 그 기기를 리부팅하곤 합니다. 각 방의 벽에 랜선 케이블을 꽂을 수 있게 되어 있습니다.PC는 전부 벽에 있는 랜선 포트에 랜선 케이블을 꽂습니다.거실에 있는 공유기는 거실 벽면에 있는 랜선 포트와 연결되어 있습니다.제가 파악한 걸 말씀드려보겠습니다.1. 세대로 들어오는 네트워크 신호는 신발장 안쪽에 있는 설비를 통해 집의 각 벽면의 랜선 포트로 전달한다공유기가 내보내는 신호 역시 벽면의 랜선 포트로 전달된 신호를 받아서 동작한다. PC가 랜선으로 수신하는 네트워크 신호와 공유기가 뿌리는 무선 신호는 같은 망에 속한다 이 상황에서, PC는 랜선으로 연결하고 노트북은 공유기에 연결하는 것이, 강의에서 말씀하신 하나의 공유기에 랜선으로 두 PC를 연결하는 것과 동일한 것처럼 느껴집니다. 맞을까요?이게 맞다면 영상에서 말씀하신 클라이언트 PC의 케이블 연결 해제가 노트북의 와이파이 연결 해제와 동일한 것 아닌가 하는 생각이 들었습니다.
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
이더넷 질문 드립니다.
Ethernet 헤더 분석 및 LSO 이슈 강의에서 고급 네트워크 설정을 따라하려고하는데 이더넷이 없어요 .. 혹시 VMware에서 하신걸까요 .. 아니면 BIOS에서 제가 잘못한걸까요.. 답변 부탁드릴게요 !
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
윈도우10으로 해도 되나요??
집 os가 윈도우 10이여서요..
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
ThreadAcceptLoop 의 우아한(?) 종료에 대해 질문드립니다.
안녕하십니까, TCP/IP, IOCP 개념을 배우는데 강사님의 강의가 큰 도움이 되었습니다. 다름이 아니라, IOCP 코드를 C++ Class 로 작성중에 소멸자에서 리소스들을 해제 하려고 작성 중에 있는데 ThreadAcceptLoop 스레드를 우아하게 종료하기 위한 방법이 있는지 궁금하여 질문을 하나 드려봅니다. g_hSocket : Server Listen SocketDWORD WINAPI ThreadAcceptLoop(LPVOID pParam)while ((hClient = ::accept(g_hSocket, &ClientAddr, &nAddrSize)) != INVALID_SOCKET){ // Do Something...} 보시다싶이 ThreadAcceptLoop 함수 내부에서 ::accept() 를 처리해주고 있고 accept 에 들어가는 순간 Blocking 이 되어버립니다. 저는 스레드의 완전 종료를 위해 accept 함수를 빠져나가기 위한 방법을 찾아보니 g_hSocket = NULL 또는 INVALID_SOCKET 을 할당 해주는것 말고는 Accept 함수를 빠져나갈 수 있는 방법이 없는 것 처럼 보이더라구요. 하지만 이런식으로 NULL 할당하여 accept 를 빠져나가도록 하고 WSAGetLastError 를 호출해보면 "WSACancelBlockingCall를 호출하여 차단 작업이 중단되었습니다." 라는 에러를 확인할 수 있었습니다. g_hSocket = NULL 호출 후 해당 오류를 무시해도 지나가도 되는 코드인지, 아니면 accept Blocking 상태를 빠져나가기 위한 "우아한 방법" 이 있는지 궁금합니다. 현재 작성한 코드 순서는 아래와 같습니다. 스레드는 _beginthreadex 로 호출해서 핸들을 가지고 있습니다. ::shutdown(g_hSocket, SD_BOTH); if (g_hSocket!= INVALID_SOCKET) { ::closesocket(g_hSocket); g_hSocket= INVALID_SOCKET; // 이 시점에 accept blocking 이 풀린다! } // Accept Thread 종료를 대기하자 WaitForSingleObject(IOCPAcceptThreadHandle._threadHandle, INFINITE); CloseHandle(IOCPAcceptThreadHandle._threadHandle); 감사합니다.
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
유해 사이트 차단 프로젝트 관련 마지막 질문입니다..
안녕하세요, 좋은 강의 만들어주신 덕분에 오랜만에 몰입해서 프로젝트를 진행해보고 있습니다! 그런데 제가 지식이 부족하여 계속 모르는 부분들이 생기네요 ㅠㅠ다름이 아니라, UDP DNS Response 패킷을 위조하여 먼저 보내는 방식으로 지금 방향을 바꾸었는데, 모든 조건이 동일하고 길이마저 동일하게 변조하여 보내서 wireshark에서는 정상 패킷으로 인식하여 먼저 온 응답으로 인식하는데 브라우저와 윈도우의 nslookup에 의한 명령어로 dns 를 조회할 때는 정상적인 응답만 받아들이고 제 위조 패킷은 먼저 왔음에도 받아들여주지 않습니다 ㅠㅠ 길이도 똑같이 맞추고, 다른 건 ipv4헤더의 identification값이 달라 ip와 udp 체크섬이 달라진다는 것 뿐인데.. 혹시 관련하여 어느 부분을 더 찾아봐야 할까요 검색을 해도 너무 나오는 부분이 없어 막막하여 질문드립니다..
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
유해사이트 차단 프로젝트 관련 질문입니다.
안녕하세요, 먼저 양질의 강의를 만들어 네트워크를 이해할 수 있는 실습도 준비해주셔서 정말 감사드립니다.덕분에 정말 많은 인사이트를 얻어가는 듯 합니다.이렇게 질문을 드리는 이유는 다름이 아니라, 유해사이트 차단 프로젝트를 해보는 중에 rst 플래그를 이용한 위조 패킷을 날려 dns 질의에 대한 응답을 차단시키는 방향으로 프로젝트를 진행해 보고 싶어 그런 방향으로 진행하였습니다. 어찌저찌 dns response 보다 빠르게 rst 패킷을 날리는데에는 성공하였고, DOH(Dns Over Https) 프로토콜을 사용하는 웹페이지들은 추적자체가 불가능하여 TCP+HTTP 연결을 사용하여 DNS 응답을 주는 사이트로 테스트를 해보고 있습니다.문제는 RST 패킷이 제대로 인식은 됐는지 이후 ACK나 DNS 응답에 RST 패킷으로 DNS 서버에 응답을 주는데, 브라우저는 정상적으로 페이지를 로드를 한다는 것입니다. 제가 이해한 바로는 HTTP는 TCP 위에서 동작하는 것이니 연결이 종료된 포트로는 더이상 응답을 수신 안하고 무시해야 할 것 같은데.. 이해가 잘 되지 않습니다. 원인을 알 수 있을까요? 네트워크 스택이 달라 HTTP만 바라보는 브라우저 입장에선 TCP 스택인 RST 패킷이 오든 말든 상관 없는걸까요? Chat GPT는 브라우저에서 DNS를 처리하는 엔진에서 RST 패킷을 무시하는 로직이 있을 수 있다고 하는데 이것 때문일 지 궁금합니다.
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
VMware Player
vmware가 pro가 비상용으로 풀리면서 player가 지금 다운로드가 안되는거 같습니다. pro 버전도 다운로드에서 이상하게 막혀버리고요 혹시 지금 상황이 계속 되면 어떻게 해야될까요 ㅠㅠ강의를 멈추고 다운로드를 계속 시도하고 질문 드리는 건데 버츄얼 박스로 해도 별 문제 없을까요?
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
강사님 질문 드립니다.
제공해주신 멀티스레드 소켓 프로그램에 LPVOID 형을 가지는 매개변수에 일반 변수를 지정하셨는데 LPVOID 는 포인터와 일반변수 모두 가능 한 건지요?주신 프로그램을 보면 SOCKET hClient = 0; // SOCKET 형 변수를 선언 hThread = ::CreateThread( NULL, 0,ThreadFunction, (LPVOID)hClient, // 주소가 아닌 값을 지정0, &dwThreadID); 만약 가능하다면 내부적으로 어떻게 가능한지 확인 부탁드려봅니다. 늘 좋은 강의 감사합니다. 강사님
-
해결됨C# TCP/IP 소켓 프로그래밍
22:38 메세지 박스가 안뜨는 문제
실습을 진행하다 22:38에 떠야하는 메시지 박스가 안뜨는 문제가 발생하여 글 남깁니다.디버깅을 통해서 알 수 있는 사실은 정상적으로 서버에서 SendAsync 한 데이터를 클라이언트 Singleton의 ReceiveAsync 메서드에서 받는다는 사실입니다. ( 스레드 풀의 작업자 스레드가 응답받습니다. )하지만, LoginForm의 주 스레드와 작업자 스레드는 병렬적으로 실행되며 LoginForm의 roomList.ShowDialog()가 호출되는 순간 ReceiveAsync 를 실행하던 작업자 스레드가 중단됩니다.결국, MessageBox.Show(packet.Code.ToString()); 가 호출되기 전에 작업자 스레드가 중단되며, 메시지 박스가 뜨지 않습니다.왜 해당 작업자 스레드가 종료되는 지 궁금합니다. header의 크기를 잘못 지정한 문제였습니다.header의 크기를 2로 지정하여 해당 크기만큼만 Receive 소켓에서 읽어야 했는데, 그 이상 읽어서 이후 ReceiveAsync에서 더 이상 읽을 데이터가 없기 때문에 스레드가 중단된 것이었습니다. ㅡㅜ
-
미해결C# TCP/IP 소켓 프로그래밍
에러 관련하여 질문 있습니다.
안녕하세요, 실습을 따라 진행하던 도중 질문드릴 것이 생겨 여쭤봅니다.해당 강의의 커리큘럼 중 채팅 프로그램 세션에서 로그인 강의를 끝까지 듣고 그대로 입력해 실행해 봤을 때, 강의 영상처럼 영어를 입력하면 입력값이 길든 짧든 오류가 나지 않습니다.그러나 한글로 입력하면 아래의 사진과 같이 아이디, 닉네임 이렇게 짧게만 입력해도 오류가 납니다. 왜 이런 것인지 이유와 그 해결책을 알고 싶습니다.감사합니다.