Получение тайм-аута соединения при соединении через сотовую сеть (интерфейс ppp0).
Test code snippt for reference :
Socket sock = new Socket();
//set traffic class to 4
if(isConnectOverCellular)
sock.setTrafficClass(4);
sock.bind(new InetSocketAddress(localAddress,0));
sock.connect(remoteInetAdddress,port); // This connect method throwing connection timeout
sock.close();
Шаги:
Интерфейс wlan0 и ppp0 2 доступны на моем устройстве.
Wlan0: я хочу сохранить интерфейс wlan0 в качестве интерфейса по умолчанию для передачи всех запросов через него.
ppp0: когда я устанавливаю определенный класс трафика(например, 4) из кода, затем я передаю запрос через интерфейс ppp0.
Чтобы добиться этого, я добавил ниже запись в моей таблице ip.
// Удаленный маршрут по умолчаниюдля ppp0
ip route del default dev ppp0
// Добавлен маршрут ppp0 по умолчанию для tos (тип сервиса) 4.
ip route добавить значения по умолчанию 4 dev ppp0
Из кода Java добавьте эту строку "java socket.setTrafficClass (4)", чтобы установить класс трафика сокета для выбора интерфейса ppp0, когда класс трафика установлен на 4.
Когда оба интерфейса (wlan0 и ppp0), тогда этот фрагмент кода (операция подключения через сокет) должен работать на Nougat для Android, но это не работает и выдает исключение тайм-аута соединения.
Тот же код работает на kitkat для Android.
Примечание: еще одно замечание: когда интерфейс wlan0 не работает, то также без проблем работает работа с сокетом.
Может ли кто-нибудь помочь, пожалуйста, что за изменение, внесенное в Android Nougut, которое вызывает это?выпуск.
Заранее спасибо.
Спасибо, Йогеш Дэйв