У меня есть простой клиент, который я тестирую с моего устройства Android, я тестирую вызов telnet-сервера telehack.com. Проблема в том, что когда я запрашиваю определенную опцию из списка пунктов меню, данные отправляются, но не получаются. Опция advent (колоссальное приключение). Я пробовал различные реализации (socket, socketchannel и select) и по-прежнему получаю ту же проблему после отправки сообщения, данные не получены, другие параметры из меню работают нормально. Хуже всего то, что я загрузил различных клиентов telnet из игрового магазина, у них, похоже, такая же проблема. (Помимо Mobile Telnet, который, похоже, использует библиотеку сокетов NDK C++).Андроид сокет не принимает
Также поиск и Wireshare и telnet-клиент на окнах не показывают ничего необычного, когда данные отправляются обратно.
public void run() {
mRun = true;
try {
Socket sc = new Socket(SERVER_IP, SERVER_PORT);
inBuffer = new DataInputStream(sc.getInputStream());
outBuffer = new DataOutputStream(sc.getOutputStream());
Log.e("TCP Client", "C: Connecting...");
if (mConnectionListener != null)
mConnectionListener.connectionStatusChanged(true);
sc.setSoTimeout(5*60*1000); //Socket timeout = 4 minutes
sc.setTcpNoDelay(true);
sc.setKeepAlive(true);
try {
while (mRun) {
int size = inBuffer.available();
if (size > 0)
{
byte[] readBuf = new byte[size];
inBuffer.read(readBuf);
вы могли бы быть немного более конкретно о вашем вопросе и включают в себя весь исходный код рамки вы говорите (похоже, что это неполный). – gabriel
Вы можете попробовать запустить это на эмуляторе Android и обнюхать пакет на хосте или через устройство на маршрутизаторе wifi, которое может понюхать, или через wifi-доступ к подключению Ethernet-сети вашего устройства, принюхиваемому там. –