我正在使用一个名为 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");
为什么握手会失败?有什么我不明白的吗?谢谢