inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Callback 기반 비동기 파일 입/출력 (예제 포함)

Callback 기반 비동기 파일 입/출력 질문

해결된 질문

453

고대괴물

작성한 질문수 3

0

 안녕하세요 수업 잘 듣고 있습니다 감사합니다.

Callback 기반 비동기 파일 입/출력 부분에 질문이 있습니다.

만약 IoThreadFunction 함수에서 다수의 WriteFileEx 를 호출하고 콜백을 모두 같은 FileIoComplete 함수로 받는상황이 있을경우 테스트 해보니 하나의 파일 IO만 완료되도 SleepEx 가 통과되는 상황이 발생하는데요

이경우 만약 모든 콜백을 받길 원하면 구조적으로 스래드 하나당 하나의 WriteFileEx를 호출하도록 하거나 별도로 이벤트를 이용해서 처리하거나 하는 방법이 떠오르긴 한데 이방법이외에 다른 방법도 있을까요??

socket.io udp iocp tcpip

답변 2

1

고대괴물

안녕하세요 예제 코드 작성중에 '이렇게 작성하면 어떻게 될까..' 하는 의문이 들어서 질문을 드렸었습니다. 답변주신대로 스레드를 처리하는게 좀 더 바람직한 사용법인거 같습니다. 답변 감사합니다~

0

널널한 개발자

비동기 입/출력 방식이 높은 성능을 보장하긴 합니다만 그렇다고 동기 방식이 확연히 떨어지는 것도 아닙니다. 상황에 알맞게 병행운영하는 것이 적절하다 하겠습니다. 감사합니다. ^^

0

널널한 개발자

다수의 WriteFileEx() 함수 호출이 여러 파일에 대한 것인지 모르겠습니다. 개인적으로 그런 구조로 개발해본 경험이 없습니다. 불가능할 것으로 보이지는 않으나 정상적인지 확인은 필요하겠습니다. 그리고 SleepEx() 함수가 호출되어 스레드의 상태가 Alertable wait 상태가 되었을 때 이를 여러 번 호출한다 해서 내부적으로 계수가 되지는 않습니다. wait 상태 스레드를 깨워 줄 대상(혹은 이유)이 여럿 이라면 그 중 하나만 스레드 상태를 변경해준다면 상태는 다시 본래 상태로 돌아옵니다.

그러므로 본인이 생각하는 것처럼 Alertable wait 상태를 가지는 스레드는 하나 만 존재하도록 개발하는 것이 적절하겠습니다. 만일 이벤트를 사용할 생각이라면... 굳이 비동기 처리를 해야 할 이유가 있는지 구조를 다시 생각해보는 것이 좋겠습니다.

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

249

1

소켓 입/출력 설계 정리

0

450

1

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

0

412

2

빅 엔디언과 리틀 엔디언

0

378

2

TIME_WAIT 관련 문의드립니다.

0

226

1

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

0

288

1

bind 함수 관련 궁금증

0

357

2