|
명쾌하고 유용한 답변 감사합니다.
덕분에 정리가 싹 되는군요.
ACE에선 소켓도 스트림으로 쓰는지라 제가 스트림이라고 썻습니다만 실제로 제가 쓰는건 소켓이 맞습니다.
이거때문에 밤새 자료를 찻아본 결과 초기화시 핸들 중복등록은 안된다고 하니 Accepter에 핸들러가 두세개 움직여서 말씀하신대로 입력요청 + 입력요청 또는 출력요청 + 출력요청이 동시에 일어나는 일은 근본적으로 막아야겟군요. 이건 뭐 요청중이면 큐에 써 넣어버림 되니 문제 없을듯하고... 입출력동시 요청은 뭐 문제없을듯하네요.
그 Sample소스에선 우째서 그렇게 해놨는지.. 연구대상입니다.
아마 입출력 스트림이 소켓이 아닌 다른것(파이프나 파일등)이 될 수도 있는걸 고려한것이 아닐까하네요.
어쨋든 제가 OVERLAPPED란 용어에 너무 오버했나봅니다.
다시 한 번 답변에 감사드립니다.
초보대왕 님이 쓰신 글 :
: -- 같은 입력 스트림에 입력 버퍼 A, B가 있습니다.
: -- A 는 1024바이트.
: -- B 는 128바이트.
: -- (사실 바이트는 그리 중요하지 않고 완료 이벤트 발생 순서가 중요합니다.)
:
: -- 처음 비동기 입력스트림에 A를 1024바이트를 읽어라고 명령을 주었습니다.
: -- 두번째 다시 입력스트림에 B를 128바이트를 읽어라고 명령을 주었습니다.
:
: -- 이 경우 비동기 읽기 순서는 A, B였습니다만, 완료이벤트는 B,A 순으로 올 수가 있는지요?
: -- 반대로 쓰기 역시 같은 문제입니다.
: -- 비동기 출력스트림에 A를 쓰라고 먼저 했고, 다시 B를 쓰라고 했습니다.
: -- 이때 쓰기 완료 이벤트는 B,A의 순서로 올 수 있는지요?
:
: 예 그럴 수 있읍니다.
: 근데 "같은 입력 스트림" 이라고 하셨는데 이것이 "같은 소켓"을 의미한다면,
: "같은 소켓"에 대하여 입력스트림이 중복된다거나 출력 스트림이 중복된다거나 하는 것은
: 별로 좋지 않습니다. (물론 입력스트림, 출력스트림이 중복되는 것은 상관없습니다.)
|