0

我是我的 Android 应用程序,我有一个客户端,它必须每秒向服务器执行多个 HTTP 请求。

我实现这一点如下:

        public class myclient implements Runnable {

           private HttpClient httpClient = null;
           private HttpParams params = null;
           private HttpGet httpRequest;

           myclient () {
                httpClient = new DefaultHttpClient();
                params = httpClient.getParams();
                httpRequest = new HttpGet(request);

                HttpConnectionParams.setConnectionTimeout(params, 60000);
                HttpConnectionParams.setSoTimeout(params, 60000);
                ...
           }

           @Override
           public void run() {

                HttpResponse response = httpClient.execute(httpRequest);
                HttpEntity entity = response.getEntity();

                BufferedHttpEntity bufferedHttpEntity = new  BufferedHttpEntity(entity);

                InStream = bufferedHttpEntity.getContent();
           ...
           }
    }

现在的问题:虽然每个请求的目标端口是端口 80,但本地端口在每个请求时都会更改。这会给防火墙带来一些麻烦。有什么方法可以保持本地端口不变?我在将本地端口设置为固定值的 .NET 应用程序中解决了这个问题。但在这里似乎是不可能的。此外,我认为本地端口的更改意味着新的 TCP 连接:为什么不保留连接?

4

0 回答 0