2012-04-26 2 views
0

По каким-то причинам я должен настроить на android SocketServer, который ждет подключения к компьютеру. Все идет хорошо, сокет с клиентом (компьютером) создает, но потоки не открываются. Это просто пауза без каких-либо ошибок или сообщений.Не удается открыть выходной поток

клиент:

 s = new Socket(ip, 4567); 
     ois = new ObjectInputStream(s.getInputStream()); 
     System.out.println("ois..");// not showing, so can't open input stream 
     oos = new ObjectOutputStream(s.getOutputStream()); 
     System.out.println("oos.."); // same here 

сервер:

 socket = new ServerSocket(4567); 
     System.out.println("Waiting for connection,,"); // showing 
     client = socket.accept(); 
     System.out.println("Connected"); //showing 
     ois = new ObjectInputStream(client.getInputStream()); 

     System.out.println("ois.."); // not showing 
     oos = new ObjectOutputStream(client.getOutputStream()); 
     System.out.println("oos.."); // not showing too 
     System.out.println("Stream,s opened"); 

Мой APK имеет INTERNET premissions. Я использую порт 4567. Любое другое приложение не блокирует порт.

Что может быть неправильным?

+0

Какая ошибка ??? – MAC

+0

Покажите нам некоторый код. –

ответ

3

Попробуйте сначала открыть ObjectOutputStream на своем сервере.

socket = new ServerSocket(4567); 
    System.out.println("Waiting for connection,,"); // showing 
    client = socket.accept(); 
    System.out.println("Connected"); //showing 
    oos = new ObjectOutputStream(client.getOutputStream()); 
    ois = new ObjectInputStream(client.getInputStream()); 
    System.out.println("Stream,s opened"); 
+0

Я пробовал это раньше, но не помог. Смешивание с помощью setSoTimeout && keepAlive заставило его работать. благодаря! –

2

Я не вижу никаких тайм-аутов там, поэтому он просто останавливается.

Возможно, существует проблема с сетью; вы подтвердили правильность IP-адреса устройства?

Это маловероятно, но там может быть каким-то брандмауэром, блокирующим соединение.