TCP-клиент Android не может отображать данные, отправленные с сервера C через Wi-Fi - PullRequest
0 голосов
/ 06 марта 2012

Я немного новичок в программировании сокетов для Android.Моя андроид-программа просто подключается к серверу (написано на c, выполняется в консоли) и должна отображать контент, отправляемый с сервера (что-то вроде «привет клиент»).У меня есть textview для отображения, устанавливается ли соединение или нет, и другой текст редактирования для отправки клиентского сообщения на сервер.Система подключена через Wi-Fi.Сервер может получать сообщения от моего Android-клиента, но Android-клиент не отображает сообщение, отправленное сервером.Фрагмент кода для чтения с серверной части:

 private TextView MsgFromServer; //defination

// вот код для подключения и запуска нового потока и т. Д.

   final BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));    


   handler.post(new Runnable() {
                            @Override
                            public void run() {

                                try {
                                    while((line=in.readLine())!=null){
                                        MsgFromServer.append(line);
                                    }
                                } catch (IOException e) {
                                    // TODO Auto-generated catch block
                                    e.printStackTrace();
                                }

Также я попытался сделать что-то подобное:

final BufferedReader in = new BufferedReader (new InputStreamReader (socket.getInputStream ()));

                   line=in.readLine().toString(); //string type

                      handler.post(new Runnable() {
                            @Override
                            public void run() {

                          MsgFromServer.setText(line);
                                  }
                                  }                                 

оба подхода не работают для меня. Сообщение, которое я отправляю от клиента клиентусервер достигает там должным образом, тогда как в другом направлении связь не происходит.Также я проверил свой C-сервер с простым C-клиентом, и передача сообщений проходит гладко.

1 Ответ

0 голосов
/ 06 марта 2012

Как ведет себя клиент?Ожидание в in.readLine ()?

Убедитесь, что сервер отправляет сообщение "Hi client \ n" (с указанием строки).

in.readLines () возвращается только при обнаружении строки \ n.

Работает ли новый Runnable?Если вы немного измените код на

                          try {
                                     MsgFromServer.append("going to read a line..");
                              while((line=in.readLine())!=null){
                                    MsgFromServer.append(line);
                                }

, то вы это видите?

...