2010-12-16 12 views
1

Ich habe einen IOCP-basierten Server, den wir schon lange benutzt haben. Jetzt müssen wir SSL-Unterstützung hinzufügen. Ich kämpfe um eine saubere Lösung. Ich habe zwei Optionen in den beiden anderen Threads vorgeschlagen -Einfachste Möglichkeit, SSL zu einem IOCP-basierten Windows-Server hinzuzufügen?

1) Verwenden Sie OpenSSL Memory BIO - aber haben keine Beispiele im Netz gefunden, die mit IOCP-Ports, die die Probleme, die aufgrund der Multi-Thread-Natur auftreten, funktionieren von IOCP. 2) Verwenden Sie Boost ASIO mit ssl - die ich denke, verwendet IOCP intern. Es gibt jedoch keine Beispiele, die zeigen, wie pro Verbindungszustand Daten gespeichert werden können - zum Beispiel in unserem Server gibt es Zustandsinformationen für jeden angeschlossenen Client, diese Statusinformationen werden verwendet, um den Client zu erkennen und die von Client-Daten gesendeten Analysen entsprechend zu analysieren.

Ich wäre wirklich dankbar, wenn Sie eine Lösung für die oben genannten zwei Probleme oder eine andere Lösung vorschlagen könnten, die für Sie funktioniert hat.

UPDATE: Ich verwende Simple C, um IOCP in Winsock2-Bibliothek zu implementieren.

Mit freundlichen Grüßen Niladri

+0

Bitte aktualisieren Sie Ihre Frage und beschreiben Sie, für welche Plattform und Entwicklungswerkzeuge/Programmiersprache Sie eine Lösung suchen. –

Antwort

2

Siehe meine Antwort hier: How do I use OpenSSL with WinSock?

ich einen Artikel geschrieben, der Code OpenSSL für die Verwendung mit Asynchron-Buchsen verfügt. Der Code des Artikels zeigt die asynchronen Sockets von MFC, aber die Theorie ist dieselbe für IOCP.

Ich habe eine Variation des Designs verwendet, das in dem Artikel für die OpenSSL-Unterstützung vorgestellt wird, die als Teil meines IOCP-basierten Server-Frameworks verfügbar ist; siehe hier: http://www.serverframework.com/products---the-ssltls-using-openssl-option.html.