Я хочу отправить строковые данные из приложения Android на ноутбук.Я использую приложение в качестве клиента и ноутбук в качестве сервера под локальным маршрутизатором Wi-Fi.Это мой код: -
import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
private Socket client;
private Button button;
private EditText edit;
private String IP ="";
private int PORT = ;
private String result;
private String msg_received="";
private TextView text;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.button); // the send button
edit = findViewById(R.id.editText); //text view
text = findViewById(R.id.textview);
sentdata();
}
private void sentdata() {
myTask mt = new myTask();
mt.execute();
}
class myTask extends AsyncTask<Void,Void,Void> {
@Override
protected Void doInBackground(Void... voids) {
try {
client = new Socket(IP,PORT);
while (true) {
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
result = edit.getText().toString();
text.setText(result);
DataOutputStream DOS = new DataOutputStream(client.getOutputStream());
DOS.writeUTF(result);
}catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}});
DataInputStream DIS = new DataInputStream(client.getInputStream());
if(DIS.available() != 0) {
msg_received = DIS.readUTF();
Log.d("msg", msg_received);
text.setText(msg_received);
}
if(msg_received.equals("bye")){
break;}
}
client.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
}
мое приложение завершается с DOS.writeUTF (результат) DOS.readUTF (), и когда я не использую нажатие кнопки и использую sentdata в качестве функции кнопки
и комментирует часть getdata, затем успешно отправляет данные.
Я хочу отправлять данные из приложения на ноутбук и получать данные с ноутбука на приложение в режиме реального времени. Например, если я изменяю данные и нажимаю кнопку, я отправляю данные вноутбук, и когда я отправляю данные с ноутбука, я получаю данные о приложении в текстовом представлении.