客户端/服务器通信中的中间件

时间:2012-10-03 22:44:18

标签: visual-c++ client-server winsock broker

我正在使用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

2 个答案:

答案 0 :(得分:0)

您需要的是编写自己的库以实现目标。我没有看到任何实际使用这样的“经纪人”,它只是堆叠请求并逐个发送它们,因此没有商业上可用的。你可以写一个,如果你真的想要这样的事情,那么这不是一项艰巨的任务。这可能是您特定于应用程序的需求,我会让您的上述WinSock代码足够智能化,以避免搜索/编写这样的库。

您可能还想考虑微软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

答案 1 :(得分:0)

您所描述的是消息队列。查看MSMQ(Microsoft Message Queue)或RabbitMQ。这将允许您的客户端应用程序向队列发送请求。然后,您的服务器将读取队列中的请求并根据需要对其进行处理。