Приложение Android не может открыть сокет для подключения к серверу - PullRequest
0 голосов
/ 18 декабря 2010

Я занимаюсь разработкой приложения для Android, и приложение должно подключиться к серверу.Это код клиента.79.123.176.59 - это IP-адрес сервера.Приложение и сервер подключены к одной сети.Когда я выполняю свое приложение, оно никогда не открывает сокет.Поэтому он не может подключиться к серверу.

Когда я выполняю клиентский код отдельно от приложения, он просто отлично работает!

В чем проблема?У вас есть какие-нибудь предложения ?

Спасибо!

int port=8080;
   Socket s;
   String msg="";
   String err="error";
   try{
       Log.d("Client","Socket");
       s=new Socket("79.123.176.59",port);
       Log.d("Client","Socket opened");
       OutputStreamWriter osw=new OutputStreamWriter(s.getOutputStream());
       PrintWriter pw=new PrintWriter(osw);
       BufferedReader br1=new BufferedReader(new InputStreamReader(s.getInputStream()));
       Log.d("Client","Streams");
       pw.println(latitude + " " + longitude );
       Log.d("Client","String send");
       pw.flush();
       msg=br1.readLine();
       return msg;
   }
   catch ( Exception e )
   {
       return err;
   }

Ответы [ 3 ]

0 голосов
/ 26 апреля 2011

TCP SOCKET на Android Вы можете подписаться на эту тему, и код также доступен там.

0 голосов
/ 16 октября 2011

Конструктор Socket не принимает строку, я не понимаю, как она компилируется?

Попробуйте это

s=new Socket(new InetAddress.getByName("79.123.176.59"),port)
0 голосов
/ 19 декабря 2010

Вы не закрываете сокет и не потоки. Поэтому, возможно, вы не можете подключиться, потому что ваше устройство заблокировано сокетом, который вы открыли ранее. Попробуй поставить это после твоего catch (и не возвращайся внутрь try / catch)

finally {

        pw.close();
        br1.close();
        s.close();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...