数据流并行发送到Web服务器并接收

时间:2017-01-13 15:42:06

标签: c# tcp

我正在寻找从代理并行发送数据包的方法。那可能吗 ?拆分数据流抛出多个代理作为parralel流并在目标站点上合并该数据包?与来自服务器的geting数据包相同。

Example: sentence: owl does hoot

proxy1 -> owl -> send to -> site.com
proxy2 -> does -> send to -> site.com
proxy3 -> hoot -> send to -> site.com

on the end merge to -> owl does hoot (act as one host)

虽然我希望以相同的方式接收数据获取请求,但是不仅将一个接收分配给代理。

这可能吗?感谢

1 个答案:

答案 0 :(得分:0)

这是你可以接受几个数据流的方法:

static void Main(string[] args) {
        string IPAddr = "127.0.0.1";
        TcpListener listener = new TcpListener(new IPAddress(Encoding.UTF8.GetBytes(IPAddr)), 8080);
        listener.Start();
        while (true) {
            Task.Factory.StartNew(() => handleTCPResults(listener.AcceptTcpClient()));
        } 

    }

    static void handleTCPResults(TcpClient client) {
        var stream = client.GetStream();
    }

您可以以某种方式保存数据然后将所有内容放在一起。我的第一个想法是获取Stream的前两个字节(或者如果你需要更高的数字),并让第一个字节例如是 merged packed,第二个字节是包的索引。然后,您必须找到最佳方式来获取数据。

byte numberOfSplitPackage = Convert.ToByte(stream.ReadByte());
byte IndexOfPackage = Convert.ToByte(stream.ReadByte());

保存在这样的事情列表中:

public struct Package {
    public byte numberOfSplitPackage;
    public byte IndexOfPackage;
    public byte[] body;
   }