2013-05-02 138 views
0

我想开发一个简单的ftp客户端使用开源的ftp4j库为Android。我想知道是否有任何方法可以更改/增加数据传输的TCP窗口大小。 我试图改变数据套接字接收缓冲区大小,但是当我检查了Wireshark的登录窗口的大小并没有改变,在所有的,它总是在那里195232.如何在android for FTP中增加TCP窗口大小?

protected Socket tcpConnectForDataTransferChannel(String host, int port) throws IOException { 
    Socket socket = new Socket(); 
    int size = (1024*1024); 
    socket.setSoTimeout(readTimeout * 1000); 
    socket.setSoLinger(true, closeTimeout); 
    socket.setReceiveBufferSize(size); 
    socket.setSendBufferSize(size); 
    socket.connect(new InetSocketAddress(host, port), connectionTimeout * 1000); 
    Log.d(TAG,String.valueOf(socket.getReceiveBufferSize())); 
    return socket; 
} 

感谢

回答

0

你做它。设置接收缓冲区大小决定了最大接收窗口。但是该平台可以自由调整向上或向下请求的大小。在设置它以查看内核给你的价值之后检查它。

195232是一个相当体面的大小。没有比带宽延迟产品更大的优势。

+0

设置值后,它给了我1048576,并且wireshark日志中的窗口大小仍然是195232。但是,当我使用第三方应用程序(和FTP)以相同的网络条件下载相同的文件时,窗口大小增加到大约1060833.我无法理解它是如何为其他应用程序增加的,对于我的应用程序,无论我设置它的值如何,都只停留在195232 – user1720839 2013-05-05 02:36:04

相关问题