0

我有使用 windsock 传输数据的客户端服务器程序,但我需要类似客户端 - 通道 - 服务器的东西,其中通道将从 clinet 检索请求或服务器将处理它,并且 id 在那个时候通道很忙它将存储该请求在队列中。我希望频道作为一个单独的应用程序。我对此有一点想法:

class ch {

void getdata{
//to recieve data
}

void putdata{
//to send data
}

void queue{
//to store if channel is busy now
} 

private:
void dataaddress;
double datasize;

}

我想把它做成一个不同的应用程序或一个 dll 文件,但我不知道如何使用 dll 文件和其他如果我使用套接字它会像客户端或服务器一样。那么有没有更好的方法或从哪里开始呢?我知道 boost:asio 和其他库,但我需要 c++ 标准库中的一些东西。

4

1 回答 1

2

如果我理解你,你需要三个程序,连接如下:

+--------+ +------------+ +--------+
| 客户 | <---> | 《频道》 | <---> | 服务器 |
+--------+ +------------+ +--------+

“通道”程序充当服务器和客户端之间的代理。

为此,您必须创建“通道”程序来充当服务器客户端。它以客户端程序连接到它的方式而不是实际服务器的方式充当服务器。当“通道”程序接收到新的客户端连接时,它自己充当客户端连接到真实服务器。

然后,您必须跟踪套接字是否对(客户端和服务器连接),以便当您从一个套接字接收输入时,您对其进行处理并将处理后的数据发送到另一个套接字。因此,如果客户端发送数据,您会在“通道”程序中接收它并执行所需的任何处理,然后将其发送到真实服务器。反过来也一样。

于 2012-11-07T06:19:11.230 回答