Я разрабатываю приложение для Android, и мне нужно отправить сообщение из приложения на сервер Java.
Java-сервер работает следующим образом:
thread = new Thread(){
public void run(){
System.out.println("Server is running...");
try {
ServerSocket socket = new ServerSocket(7000);
while(true){
Socket s = socket.accept();
DataInputStream dis = new DataInputStream(s.getInputStream());
System.out.println("Received from client: " + dis.readUTF());
dis.close();
s.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
};
thread.start();
В моем приложении я отправляю сообщение таким образом:
mt = new Thread() {
public void run() {
try {
Socket socket = new Socket("192.168.1.100", 7000);
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF(song_field.getText().toString());
dos.flush();
dos.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
};
mt.start();
Toast.makeText(context, "Your Message is sent. Thank you!", Toast.LENGTH_SHORT).show();
Я могу успешно отправить сообщение с помощью эмулятора и моего телефона, поскольку они подключены к одному и тому же Wi-Fi-соединению, но если устройство не подключено к одной и той же сети, сообщение не отправляется на сервер. Я хочу, чтобы все могли отправлять сообщения на сервер моего компьютера независимо от их подключения к Интернету.
Как я могу решить эту проблему?