1

レースウィングライブラリは、安全なサーバーのホスティングをサポートすることになっています。

証明書が正しくロードされれば、安全であるはずだと書かれています。しかし、私はそれをホストしていて、証明書が正常にロードされたと表示されますが、クライアントからサーバーにメッセージを送信すると、それを受信しません。証明書がロードされていない場合は、ロードします。

#include <string>
#include <iostream>  
#define  LacewingFunction
#include "Lacewing.h"

void onReceive (Lacewing::Server &Server, Lacewing::Server::Client &Client,
                char * Data, int Size) {
                    /* callback body */
                    std::cout << Data << "\n";
}

void onConnect (Lacewing::Server &Server, Lacewing::Server::Client &Client)
{
    std::cout << "Connected!" << "\n";
    Client.Send("TestingS");
}



void onReceiveC (Lacewing::Client &Client, char * Data, int Size)
{
    std::cout << Data << "\n";
    Client.Send("TesingC");
}


int main(int argc, char* argv[])  
{  
    std::string s;
    std::cin >> s;
    if(s == "server")
    {
        Lacewing::EventPump pump;
        Lacewing::Server* server = new Lacewing::Server(pump);
        server->LoadSystemCertificate("MY","localhost");
        std::cout << server->CertificateLoaded();
        server->onReceive(onReceive);
        server->onConnect(onConnect);
        server->Host(1234);
        std::cout << server->CertificateLoaded();
        pump.StartEventLoop();
    }
    else
    {
        Lacewing::EventPump pump;
        Lacewing::Client* server = new Lacewing::Client(pump);
        server->onReceive(onReceiveC);
        server->Connect("192.168.2.12",1234);
        pump.StartEventLoop();
    }

    return 0;  
}  

どちらの場合も、証明書にはロードされていると記載されています。

これがAPIドキュメントです。 http://lacewing-project.org/docs/server/LoadSystemCertificate.html

ありがとう

makecertによって生成された証明書が機能しない可能性がありますか?誰かが私が試すことができる証明書を持っていますか?

4

1 に答える 1

1

私は同じことを試みています。

bSecure = WebServer.LoadSystemCertificate("My", "localhost","localmachine");
bSecure = WebServer.CertificateLoaded();

どちらも真なので、証明書をロードする必要があります。

ここを見てください:証明書を作成する方法

これは、IE9、ポートが5040に設定されている場合は正常に機能します。Firefox https://localhost:5040/ またはChromeでは機能しませんが、これは「認証局」証明書の読み込みと関係があります。

于 2012-05-14T10:18:39.347 に答える