inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Windows 소켓 프로그래밍 입문에서 고성능 서버까지!

멀티스레드 에코 서버 (예제 포함)

강사님 질문 드립니다.

해결된 질문

249

내일은 한걸음 더 나아갈거야

작성한 질문수 70

0

 제공해주신 멀티스레드 소켓 프로그램에 LPVOID 형을 가지는 매개변수에 일반 변수를 지정하셨는데

 

LPVOID 는 포인터와 일반변수 모두 가능 한 건지요?

주신 프로그램을 보면

 

SOCKET hClient = 0; // SOCKET 형 변수를 선언

hThread = ::CreateThread( NULL, 0,

ThreadFunction, (LPVOID)hClient, // 주소가 아닌 값을 지정

0, &dwThreadID);

 

만약 가능하다면 내부적으로 어떻게 가능한지 확인 부탁드려봅니다. 늘 좋은 강의 감사합니다. 강사님

socket.io udp iocp tcpip

답변 1

0

널널한 개발자

LPVOID는 void* 형 입니다. 그리고 이는 포인터 변수라는 의미로 일반화 할 수 있습니다. 나아가 메모리 주소 하나를 저장할 수 있는 크기를 갖는 메모리 공간으로 볼 수 있습니다. 여기에 주소를 담을 목적으로 선언된 것이지만 이것을 다른 정보를 저장하는 용도로 전용한다 하더라도 C/C++에서는 문제가 되지 않습니다.

애초 국을 담아 먹을 용도로 만들어진 국그릇(형식)을 밥을 담는 용도로 전용(강제 형변환)한다고 해서 큰일이 나지 않고 예의(문법)에 어긋나지 않는 것이라면 허용합니다. 이런 개념을 쉽게 '자유도가 높다'라고 할 수 있겠습니다. 참고하시기 바랍니다. 😄

recv, send 리턴값 질문

0

77

2

스타,워크와 같은 디스창 (Disconnected)도 비정상 종료에 대응하는 시스템으로 봐야할까요?

0

96

2

수업과 관련해서 읽어볼 만한 책 있나요?

0

111

1

서버가 끊어버리는것에 대한 질문

0

121

2

TCP 의도적 장애 테스트 질문

0

159

2

shutdown()을 호출하는 이유

0

165

1

프로토콜이 적용된 파일 송신 서버에서 send, recv 질문 있습니다!

0

153

2

"파일 송신 서버 제작" 강의 질문입니다!

0

151

2

대표적인 장애 유현 2

0

131

2

대표적인 TCP 장애 유현

0

161

2

이벤트 기반 파일 입출력과 callback 기반 파일 입출력이 네트워크에도 쓰이는 기법인가요?

0

120

2

개발환경 질문이 있습니다.

0

137

1

TCP/IP vs UDP , 멀티 스레드에서의 병목 현상에 대한 질문이 있습니다!

0

221

2

메모리 관련 문제로 질문드립니다.

0

187

2

테스트 환경 질문드립니다!

0

168

2

ThreadAcceptLoop 의 우아한(?) 종료에 대해 질문드립니다.

0

419

2

하트비트 시 서버에서의 연결 종료

0

451

2

소켓 입/출력 설계 정리

0

450

1

멀티스레드 기반 서버 관련 질문..!

0

412

2

빅 엔디언과 리틀 엔디언

0

378

2

TIME_WAIT 관련 문의드립니다.

0

226

1

강사님 강의자료 인쇄용으로 부탁드립니다.

0

288

1

bind 함수 관련 궁금증

0

357

2

스마트포인터 사용여부 및 가능성

0

260

2