我是我的 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 连接:为什么不保留连接?