高性能TCP/UDP/HTTP通信フレームHP-Stocket v 4.0.1リリース
8088 ワード
HP-Stocketは、汎用的な高性能TCP/UDP/HTTP通信フレームであり、サービスエンドコンポーネント、クライアントコンポーネント、Agentコンポーネントを含み、様々なアプリケーションシーンに広く適用されているTCP/UDP/HTTP通信システムで、C/C+、C觀、Delphi、E(言語交換)、Java、Pythonなどのプログラミング言語インターフェースを提供しています。HP-SCocketは通信層の完全パッケージ化を実現し、アプリケーションは通信層の詳細に注目する必要がない。HP-Stocketは、イベント通知モデルに基づくAPIインターフェースを提供し、新旧のアプリケーションに非常に簡単に効率的に統合することができます。
使用者がHP-Socketを簡単に学習し、使用することができるように、フレームの設計思想と使用方法を迅速に把握するために、多くのDemo例(例えば、PUSHモデル例、PULLモデル例、PACKモデル例、性能試験例、および他のプログラミング言語例)を丹念に作成しました。HP-Stocketは現在Windowsプラットフォームで動作しています。将来はクロスプラットフォームのサポートを実現します。
『HP-Socket v 4.0開発ガイド』
------------------------------------
汎用性
アプリケーションは、様々な容量要件、通信規模、リソース状況などの現実的なシーンに応じて、HP-SCocketの各性能パラメータ(例えば、ワークスレッドの数、キャッシュプールの大きさ、送信モード、受信モードなど)を調整し、リソースの配置を最適化し、アプリケーションのニーズを満たすと同時に、リソースを過剰に浪費する必要がない。
(プロジェクトのホームページ:ここをクリックして、住所をダウンロードします。ここをクリックしてください。)
****v 4.0.1更新****
> HTTPシリーズの通信コンポーネントを追加します。
----------------
HTTP Serverコンポーネント1を追加します。 コンポーネント類:CHttpServer、CHttpserver 2) 実現インターフェース:ITcpServer/IComplexHttpResoponder 3)モニタインターフェース:IHttp Server Listener HTTP Agentコンポーネント1を追加します。 コンポーネント類:CHttpAgent、CHttpAgent 2) 実現インターフェース:ITcpAgent/IComplexHttpRequester 3)モニターインターフェース:IHttpAgentListener HTTP Cientコンポーネント1を追加します。 コンポーネント類:CHttpClient、CHttpClient 2) 実現インターフェース:ITcpClient/IHttpRequester 3)モニターインターフェース:IHttp ServerListener HTTP例Demo 1を追加します。 TestEcho-Http(ソースコード)2) TestEcho-Http-4 C(4 C LIB/4 C DLL)Httpモニタ1) モニターイベント:
OnMessageBegin() : 【 】
OnRequestLine() : 【 】 ( HTTP )
OnStatusLine() : 【 】 ( HTTP )
OnHeader() : 【 】
OnHeadersComplete() : 【 】
OnBody() : 【 】
OnChunkHeader() : 【 】Chunked
OnChunkComplete() : 【 】Chunked
OnMessageComplete() : 【 】
OnUpgrade() : 【 】
OnParseError() : 【 】
) モニタイベント戻り値:HPR_OK :
HPR_SKIP_BODY : BODY( OnHeadersComplete )
HPR_UPGRADE : ( OnHeadersComplete )
HPR_ERROR : ,
> コンポーネントインターフェースの調整:----------------
IServerとIAgentコンポーネントのすべてのモニターコールバック方法は、OnShutdown()->OnShutdown(T*pSender)のような‘イベントソース’パラメータを増加させる。
IClientコンポーネントのすべてのモニターコールバック方法は、OnhandShake(IClient*pClient)->OnhandShake(T*pSender、CONNID dwConID)のような‘接続ID’パラメータを増加させる。
IServerとIAgentインターフェースの追加方法:Get/SetMaxConnection Count()は最大接続数を設定するためのもので、最大接続数のデフォルトは10000 です。
OnHandShake()イベントトリガルール調整:非SSLコンポーネントは、OnConnect()イベント後もOnHandShake()イベントをトリガし、SSLコンポーネントとSSLコンポーネントの処理フローを一致させる。
HPSockett 4 Cは、PACKコンポーネントモニターの作成、廃棄方法を追加します。新しいバージョンは次の方法でPACKコンポーネントモニターを作成、廃棄しなければなりません。HPTcpPackServer Listener/Destroy_HPTcpPackServer Listener 2) Create_HPTcpPackAgentListener/Destroy_HPTcpPackAgentListener 3) Create_HPTcpPackClient Listener/Destroy_HPTcpPackCient Listener SSLコンポーネントはSNI 1に対応しています。 SSL初期化方法HP_SSLInitialize()を追加し、SNIフィードバック関数ポインタパラメータ2を追加します。SSLAddServer Contect()は、SNIホスト証明書をロードするための > その他の更新:
----------------
IServerとIAgentコンポーネントはR/Wロック+Mapの代わりにRing Poolでアクティブな接続を維持し、読み書きと同時性能を向上させます。
すべてのデモコードを更新します。
**v 3.5.更新***
> SSLシリーズの通信コンポーネントを追加します。
----------------
SSL PUSHコンポーネントを追加します。CSSLServer、CSSLAgent、CSSLClient SSL PULLコンポーネントを追加しました。CSSL Pulserver、CSSLPulAgent、CSSLPulClient SSL PACKコンポーネントを追加します。CSSL PackServer、CSSL PackAgent、CSSL PackClient SSL ServerはITcpServerインターフェースを実現し、SSL AgentはITcpAgentインターフェースを実現し、SSL ClientはITcpClientインターフェースを実現します。
SSL通信コンポーネントを起動する前にHP_を呼び出す必要があります。SSLInitialize()関数初期化SSLグローバル環境パラメータ通信が完了したらHP_を呼び出します。SSLCleadnup()関数はSSLグローバル運転環境を整理します。
SSL関連例Demoを追加しました。
1) TestEcho-SSL ( )
2) TestEcho-SSL-Pack (DLL / 4C DLL)
3) TestEcho-SSL-4C (4C LIB)
4) TestEcho-SSL-PFM (LIB)
> コンポーネントインターフェースの調整:
----------------
ITcpServerListenerインターフェースにSSL握手成功イベントを追加しました。OnHandShake(CONNID dwConID)ITcpAgentListenerインターフェースにSSL握手成功イベントを追加しました。OnHandShake(CONNID dwConID)ITcpClient ListenerインターフェースはSSL握手成功イベントを増加します。OnHandShake エニュメレーションタイプESocketErrorに『SSL環境未了』エラーコードを追加しました。SSLENV_NOT_READY エニュメレーションの種類を追加:EnsLSessionMode(SSL作業モード)、EnsterifyMode(SSL検証モード) HPSockets-SL DLLの主要ヘッダファイル:SocketInterface-SL.h,HPSocket-SSL.h HPSocket 4 C-SSL DLLの主要ヘッダファイル:HPSocket 4 C-SSL.h Tcp Packシリーズのコンポーネントで設定可能な最大パケット長は、4194303/0 x 3 FFFFFバイトに調整される。
Tcp Packシリーズコンポーネントの有効ヘッダ識別範囲は0~1023/0 x 3 FF に調整されます。
> スタティックライブラリプロジェクトを追加:
----------------
プロジェクトプロジェクトHPSocketLIBとHPSocketLIB 4 Cを追加して、HPSocketとHPSocket 4 Cスタティックライブラリをコンパイルします。
静的ライブラリは、ダイナミックライブラリの使用方法と一致しています。
HPSocketまたはHPSocket 4 Cスタティックライブラリを使用する場合は、事前処理マクロ->HPSOCKET_をプロジェクト属性に定義する必要があります。STATIC_LIB スタティックライブラリのターゲットファイルは公開パッケージに含まれていません。必要ならば自分でコンパイルしてください。
****v 3.4.4更新***
> Tcp Packシリーズの通信コンポーネントを追加します。
----------------
Tcp Packシリーズコンポーネントは、各OnReceiveイベントがアプリケーションに完全なパケットを提供することを保証する。
Tcp Packシリーズコンポーネントは、PUSH/PULLモードの結合体であり、アプリケーションは、パケット分割(例えば、PUSH)とデータキャプチャ(例えば、PULL)を処理する必要がない。
Tcp Packシリーズのコンポーネントは、Get/SetMaxPackSize()とGet/SetPackHeaderFlags()の方法を提供し、最大のパケット長とパケットヘッダ識別子を設定するために使用されます。
CTcpPackServerはITcpServerインターフェースを実現し、CTcpPackAgentはITcpAgentインターフェースを実現し、CTcpPackClientはITcpClifeインターフェース を実現する。
> コンポーネントインターフェースの調整:
----------------
OnClose/OnErrorは通信イベントとして統合されました。OnClose(CONNID dwConID、ESocketOperation enOperation、int iErroCode)エニュメレーションの種類は、エニュメレーションの値を追加します。SO_CLOSE=5,識別OFFソケット動作IServerとIAgentインターフェース削除方法:Get/SetRecvPolicy()IServerとIAgentインターフェース削除方法:Get/SetMaxShutdown WaitTime()> Bug修復:
----------------
TCP Pack Agent「非同期接続失敗によるプログラム崩壊」を修正するBug vc-common-src共通コードパックを修復するCCASQueは無限ループBug を引き起こす可能性があります。