小编Mat*_*hMe的帖子

信号量上的WaitForSingleObject不等待,立即返回

我正在尝试使用Windows文件映射创建一个简单的客户端 - 服务器程序,并使用信号量.客户端向服务器发送2个号码,服务器计算nr1 + nr2和nr1*nr2.我尝试了一些东西,但它甚至不适用于1个客户端,我希望它能为更多客户工作.这是代码:

服务器:

#include <windows.h>
#include <stdio.h>
#include <iostream>
using namespace std;

typedef struct {
    int nr1;
    int nr2;
} Mesaj;

int main(int argc, char** argv) {

    Mesaj* mesaj;

    HANDLE createSemaphore = CreateSemaphore(NULL, 1, 1, "Semafor");
    if (createSemaphore == NULL || createSemaphore == INVALID_HANDLE_VALUE) {
        wcout << "Failed to create a semaphore\n";
    } else {
        wcout << "Created the semaphore\n";
    }

    HANDLE hMemory = CreateFileMapping(INVALID_HANDLE_VALUE, NULL,
            PAGE_READWRITE, 0, sizeof(Mesaj), "SharedMemory");

    WaitForSingleObject(createSemaphore, INFINITE);

    mesaj = (Mesaj*) MapViewOfFile(hMemory, FILE_MAP_READ, …
Run Code Online (Sandbox Code Playgroud)

c++ windows file-mapping

0
推荐指数
1
解决办法
2473
查看次数

标签 统计

c++ ×1

file-mapping ×1

windows ×1