Я немного новичок в программировании сокетов для 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-клиентом, и передача сообщений проходит гладко.