io-completion-ports

    1

    1답변

    다른 프로세스에서 나에게 보낸 개체를 내 디스크의 여러 파일에 작성해야합니다. 각 개체에는 fileID (쓸 파일 이름) 및 데이터 청크가 있습니다. 동시 비동기 I/O를 사용하여 파일 쓰기를 최적화하기 위해 IO 완료 포트 (IOCP)를 사용하고 싶습니다.하지만 각 파일을 동기식으로 작성해야합니다. 파일 단위의 순서는 아니지만 디스크 단위로 기록 할 때

    0

    1답변

    디스크에 많은 양의 데이터를 쓰고 나중에 다시 적은 양의 데이터를 다시 읽어야하는 프로그램을 개발 중입니다. 관련 데이터를 함께 "보관"해야하고 그런 다음 처리해야 할 작업을 파악한 다음 데이터를 추가로 처리 할 수 ​​있습니다. 기본적으로 데이터베이스처럼 작동하지만 임시 파일은 디스크에 저장됩니다. 임시 파일의 일부는 디스크를 읽은 후에 디스크의 데이터를

    3

    1답변

    I/O 완료 포트 사용의 차이점은 RegisterWaitForSingleObject을 사용하여 입출력이 완료 될 때까지 스레드 풀 스레드가 대기하도록하는 것입니까? 그 중 하나가 더 빠릅니까? 그렇다면 그 이유는 무엇입니까?

    0

    1답변

    Windows에서 IOCP를 사용하고 있습니다. 이전에는 방법 GetQueuedCompletionStatus을 사용하여 대기열을 폴링하고 모든 것이 잘되었습니다. 하지만 리팩토링을하기 위해 로직을 완료 할 때 WSARecv 호출을 사용하면 항상 오류 WSAEINVAL (10022)과 함께 실패합니다. 이 코드는 스레드에서 CreateTread int fla

    0

    1답변

    IO Completion 포트를 사용하여 비동기 IO를위한 자체 중첩 구조가 있습니다. 이제 읽기/쓰기 완료 알림이 표시됩니다. 중첩 구조에서 매개 변수로 콜백 함수를 전달할 수 있습니까? 이 날 내가 을 통과 중첩 된 구조의 유형에 따라 다양한 콜백 함수를 지정할 수 있습니다 사람이 어떤 행운이 있었나요?

    0

    1답변

    내가 GetQueuedCompletionStatus 그들이 생성 된 순서대로 WSARecv 및 WSASend 결과가 반환 선가,이 명확이없는, 그래서 여기 내 질문입니다 한 클라이언트와의 연결을 열고 서버가 먼저 WSARecv을 호출하고 WSASend을 호출하지만 클라이언트는 아무 것도 보내지 않습니다. 서버에서 GetQueuedCompletionStatu

    1

    1답변

    기본적으로 IO 완료 포트를 사용하여 파일에 5 번 쓰는 코드가 있습니다. 당신이 짐작했듯이, 그것은 잘 작동하지 않습니다. 문제는 필자가 "hello"가 파일에 5 번 쓰여지기를 기대하지만 항상 "hello"하나만 쓰게된다는 것입니다. 프로그램이 "5 바이트를 썼다"5 번 인쇄했기 때문에 혼란 스럽습니다. 그래서 쓰기가 정상적으로 완료되었다고 가정합니다.

    3

    1답변

    Windows 2008의 기본 선택기에 문제가 있습니다. iocpreactor가 Windows 용 이상적인 솔루션 인 것처럼 보입니다. 그것은 실험적이며 '거의 준비가되었습니다'라는 문서에 나와 있습니다. 이것은 실제 의미에서 무엇을 의미합니까? 지금까지 문제없이 테스트 해 보았습니다. 일반적으로 사용됩니까? 다른 사람이 그것을 권할 수 있습니까?

    0

    1답변

    내가 원하는 것은 휴경입니다. 그래서 4 개의 스레드가 있습니다. 각 스레드에 대해 IOCP를 만듭니다. 스레드 함수 내에서 GetQueuedCompletionStatus (INIFINIT) 작업을 얻으려면 기다린 다음 처리하고 다시 기다려야합니다. 그래서 특정 스레드에 작업을 제출하고 싶다면 그 IOCP에서 PostQueuedCompletionStatus

    1

    1답변

    다양한 들어오는 포트 (~ 20)에서 UDP 패킷을 수신하려고합니다. 나는 3-5 개의 쓰레드를 수신하고 처리하는데 전용으로 쓰고 싶다. 이것은 Windows의 IO 완료 포트에 이상적인 상황입니다. 필자가 이해할 수없는 것은 여러 개의 소켓을 매핑하여 적은 수의 스레드를 확인하는 방법을 많이 수행하는 방법입니다. 다음 코드는 모든 소켓을 만들고 비동기 수