Я предлагаю вам прочитать и выполнить шаги, описанные в этом руководстве.Этот урок действительно помог мне, когда я писал игровой контроллер для Android для компьютерных игр , где приложение для Android отправляло входы на ПК через USB (используя adb)
- Хочу ли я запустить ServerSocket как на развивающемся компьютере, так и на мобильном?
Нет, только одна сторона должна открывать ServerSocket ( для меня - открытие ServerSocket на устройстве Android иподключение с помощью клиентского сокета от ПК работало отлично )
Если это так, я запустил ServerSocket: на порту 8080 и устройство ServerSocket: на 9090, затем выполните adb forward tcp: 8080 tcp: 9090 будет перенаправлен на 8080, который находится на развивающейся машине ?
Не знаю, работает ли у вас открытие ServerSocket на машине разработки, у меня не получилось, когда я использовал adb.Убедитесь, что вы делаете следующие шаги
a.Откройте ServerSocket на одной стороне и прослушайте соединения (ServerSocker.accept ()), скажем, порт № 38100
b.С машины разработки выполните команду adb forward tcp:38300 tcp:38100
c.Затем на стороне клиента позвоните socket = new Socket("localhost", 38300);
d.Передача данных
Как выполнять команды adb из кода Java? Использование класса времени выполнения Java
String adbPath = "C:\\android-sdk-windows\\tools\\adb.exe";
Runtime.getRuntime().exec(adbPath + " forward tcp:38300 tcp:38100");
см. Выполнить внешнюю программу из Java