2012-10-03 14 views
7

私はC++でクライアント/サーバのペアを構築していますが、通信にはwinsockを使用しました。しかし、私はC++でライブラリを見つけることができません。これにより、クライアントからサーバに直接リクエストを送信する代わりに、リクエストを保存し、後でサーバと通信するというものを実装できます。クライアント/サーバ通信のミドルウェア

ブローカのようなものにリクエストを送信するためのメソッドやライブラリがありますか?要求を格納して、サーバーと通信します。既に使用しているライブラリは次のとおりです。

#pragma comment(linker, "/defaultlib:ws2_32.lib") 
#include <WinSock2.h> 
#include <winsock.h> 
#include <stdio.h> 
#include <iostream> 
#include <string.h> 
#include <windows.h> 
#include <ws2tcpip.h> 
#include <fstream> 
using namespace std; 

#define HOSTNAME_LENGTH 20 
#define RESP_LENGTH 40 
#define FILENAME_LENGTH 20 
#define REQUEST_PORT 5001 
#define BUFFER_LENGTH 1024 
#define TRACE 0 
#define MSGHDRSIZE 8 //Message Header Size 
+0

この「ブローカー」は何をしたいのですか?あなたが投稿したコードの意義は何ですか? –

+0

私は、このブローカがクライアントからの複数の要求を受け入れてからキューに入れ、それらを1つずつサーバーに送信して要求を処理するようにします。コードの重要性は、私がこれらのライブラリを使っていることを伝えていることです.iは、そこにC++のライブラリがあることを知りたいのですが、winsockで何かできるのです。 – networks

+5

あなたは[zeromq](http://www.zeromq.org/)のようなものを探しているようですが、必要以上に複雑かもしれません。シンプルなサーバーでは、サーバーソフトウェア自体が要求を内部的にキューに入れ、要求を厳密に順番に処理する必要がある場合は、それらを1つずつ処理します。 –

答えて

0

あなたの目標を達成するためにあなた自身のライブラリを書くことが必要です。私は、要求を積み重ねて一つずつ送るだけなので、商業的に利用可能なものはないというような "ブローカー"を持つ実用的な利用は見られません。あなたは1つを書くことができますし、本当にそのようなことが必要な場合は、それを行うのは難しい作業ではありません。これはおそらくあなたのアプリケーションの特定の必要性と私はそれを処理し、そのようなライブラリを検索/書き込みを避けるためにあなたの上記のWinSockコードをインテリジェントにするでしょう。

microsoft REST HTTPライブラリaka casablancaを検討し、そのようなライブラリを作成する前に、以下のブログ記事を読むこともできます。

http://blogs.msdn.com/b/vcblog/archive/2013/07/10/intercepting-http-request_2f00_response-using-c_2b002b00_-rest-http-library.aspx

0

あなたが記述していると、メッセージキューイングです。 MSMQ(Microsoft Message Queue)またはRabbitMQを調べます。これにより、クライアントアプリケーションは要求をキューに送信できます。その後、サーバーはキューから要求を読み取り、必要に応じて処理します。

関連する問題