Android Java ServerSocket номер порта не тот, который должен быть - PullRequest
0 голосов
/ 28 февраля 2012

Привет, я занимаюсь разработкой для Android и обнаружил что-то странное при использовании API сокетов.

Между сокетами, которые я создал из

ServerSocket server = new ServerSocket(4444);
Socket client = server.accept();

и

client.getPort();

не 4444.

Поскольку номер порта почти случайный, клиент не может связаться с серверным приложением. Любая информация или совет будут полезны!

Полный пример проекта находится здесь.

http://vext.eclipselabs.org.codespot.com/files/SocketTest.zip

Заранее спасибо!

Ответы [ 3 ]

5 голосов
/ 28 февраля 2012

Ссылка от Head First Java :

enter image description here

0 голосов
/ 28 февраля 2012

из Документы Java класса Socket public int getPort () Возвращает удаленный порт, к которому подключен этот сокет.Возвращает: номер удаленного порта, к которому подключен этот сокет, или 0, если сокет еще не подключен.

Попробуйте вызвать getLocalPort ()

0 голосов
/ 28 февраля 2012

Когда клиент-сокет соединяется с серверным сокетом, он принимает случайный пустой порт (неиспользуемый порт) на клиентском компьютере ... но этот клиент должен подключаться к определенному порту с сервером ...

Когда вы указываете серверпорт сокета;вы слушаете этот порт.и при принятии нового сокетного соединения вы должны создать ссылку на спецификацию для подключенного клиента и продолжить прослушивание входящего нового соединения;а затем используйте эту ссылку для связи с клиентским подключением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...