Установите локальный порт HttpClient на Android-приложение
Я - мое приложение для 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-соединение: почему соединение не сохраняется?