0

我正在使用一个名为 Lacewing 的库。http://lacewing-project.org/

它使用 windows crypt api 来制作安全服务器。

我为我的 PC(Josh-Laptop)创建了一个证书,我使用 netsh 将其绑定到端口 8012。Lacewing 说证书已成功加载。

然后问题来了。我正在尝试将消息从我家中的 1 台电脑(主机)发送到另一台(客户端)。

当我不加载证书并在不安全模式下使用它时,会发送和接收所有消息。

    void ServerCore::onConnect( Lacewing::Server::Client &client )
    {
        client.SendWritable("test");
    }

...

    void ServerCore::onReceive( 
        Lacewing::Server::Client &client, char * data, int size )
    {
        getServer().FirstClient()->SendWritable("test");
        client.SendWritable("test");
        std::cout << data << " was received from " << client.GetAddress().ToString() << std::endl;
    }

    void ClientCore::onConnect()
    {
        getClient().Send("test");
    }


    void ClientCore::onReceive( char * data, int size )
    {
        getClient().Send("Okay then...");
        std::cout << data << std::endl;
    }

在客户端,我收到“测试”。在服务器端,库吐出一个错误,说“握手失败”,“重叠的 io 操作正在进行中”

这是我加载证书的方式:

getServer().LoadSystemCertificate("MY","JOSH-LAPTOP","localmachine");

为什么握手会失败?有什么我不明白的吗?谢谢

4

0 回答 0