作一个Socks5 proxy
在TServerWinSocket基础上编程,使用Non_blocking模式
基本已经完成
能稳定工作
但是现在发现一个问题
就是Client - Server速度比Server - Dest快时
客户端数据可能已经发送完毕
但此时Server端还在向Dest目标主机发送数据这个速度差别可能会很大
导致速度快的那一端看到的传输情况比实际要好得多。这在FTP传输中影响很显著
客户端上传数据速度很快
传完关闭连接
而目标主机只收到一部分。不知道说清楚了没有?关键是怎么让他同步如何在Socks服务器收到数据但还没有成功传输到目标的时候使客户端慢下来

解决方案 »

  1.   

    我看计算机网络时看到这个问题,但是网络协议应该已经把它解决了,他说的解决方法是把要传递的流分成几段,当receive接收到时返回给sender一个信息,然后sender在发送新的。这不是最好的解决办法,但是我只记住了这个。看看相关的书,我估计能找到。
      

  2.   

    确实是这样的但是TCP/IP已经解决了他那是不是是说我要是不想发这个反馈信息给客户端就是不能利用已有Winsock来做?或者有别的方法?控制一下客户端发送过来的速度?有软件做到这一点的leechFtp,FlashGet都可以限速它们作为在现有协议基础上开发的软件
    而且服务端也不受它的控制
    是怎么做到这一点的呢?
      

  3.   

    这个问题有点难,关注!!我想flashget的限速有可能是形式上的
      

  4.   

    把buffer设小一点不知道行不行
      

  5.   

    Flashget不应该是形式上的限速因为如果在局域网内FlashGet限速明显可以看出网络状况好转