Как получить ответ от сервера Python клиенту Android (Java)?

У меня есть код приложения, который считывает последнее входящее смс на Android:

MainActivity.java

package com.example.mysmsapp;
import android.Manifest;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;

public class MainActivity extends AppCompatActivity {

    public String message; // наша строка, в которую мы будем запихивать последнее входящее смс
    public TextView myTextView; // текстовое поле, где будет отображаться последнее входящее смс
    public TextView bebra;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myTextView = findViewById(R.id.textView);
        bebra = findViewById(R.id.bebra);
        ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_SMS},
                PackageManager.PERMISSION_GRANTED);

    }
    public void Read_SMS(View view) {
        Cursor cursor = getContentResolver().query(Uri.parse("content://sms"), null, null, null, null); // парсим папку входящие
        cursor.moveToFirst();
        myTextView.setText(cursor.getString(12));// выводим смску
        message = cursor.getString(12); // присваиваем строке
        sendMsg(message);

    }

    public void sendMsg(String message)
    {
        MessageSender messageSender = new MessageSender(); // класс клиента
        messageSender.execute(message);
    }

}

Есть код клиента на Java (Android). Он отправляет последнее входящее смс:

MessageSender.java

package com.example.mysmsapp;
import android.os.AsyncTask;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;

public class MessageSender extends AsyncTask<String,Void,Void> {
    Socket socket;
    PrintWriter printWriter;
    @Override
    protected Void doInBackground(String... strings) {
        String message=strings[0];
        try {
            socket = new Socket("46.72.103.195",7800);
            printWriter= new PrintWriter(socket.getOutputStream());
            printWriter.write(message);
            printWriter.flush();
            printWriter.close();
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

И есть еще код сервера на Python:

Server.py

import socket
from MyModel import model

listensocket = socket.socket()  # создаем сокет
Port = 7800
maxConnections = 1  # кол-во клиентов
IP = '46.72.103.195'
listensocket.bind((IP, Port))  # биндим его
listensocket.listen(maxConnections)
print("Server run on port at " + IP + " on port " + str(Port))  # запускаем

while True:
    (clientsocket, address) = listensocket.accept()
    message = clientsocket.recv(1024).decode()
    #message1 = model([message])
    clientsocket.send('привет + \n'.encode())
    print(message)

Подскажите, пожалуйста, как принять ответ от сервера: clientsocket.send('привет + \n'.encode()) и установить его в качестве TextView public textView bebra;?

Понимаю, что, должно быть что-то типа reader = new BufferedReader(new InputStreamReader(args)) либо же mInput = new BufferedReader(new InputStreamReader(socket.getInputStream(), charset));, но не понимаю как правильно реализовать это... Помогите, пожалуйста!!


Ответы (0 шт):