我正在尝试在C中实现代理服务器和代理客户端(另外是的!)。因此,在这种情况下,我们有一个客户端,一个代理客户端,一个代理服务器和一个服务器。
代理客户端接受来自客户端的特定主机(服务器)和端口号的请求,并为代理服务器的特定主机/端口对打开单个连接。
此连接是持久的。如果对同一主机/端口组合有任何更多请求,则必须通过相同的连接发送。请求在每个连接中用id的0,1,...编号,以区分彼此。
对于从代理客户端收到的每个请求(不是连接,每个连接可能有多个请求),代理服务器为每个请求打开到目标服务器的连接。
但是,可以对可以打开到目标服务器的连接数进行限制。我想知道如何实现这个限制。
假设我指定可以打开到h1目标服务器的最大连接数为2.如果第三个连接来自客户端代理,那么服务器代理应该做什么?
如果目标服务器已经有2个打开的连接,是否应该实现某种队列来存储传入的请求?
如果是,那么是否应该有单独的队列用于单独的主机/端口组合?如何在C?
我现在感到非常失落。非常感谢这里的一些指导。 附:我使用套接字在C编码。