【发布时间】:2016-12-18 15:00:10
【问题描述】:
我正在开发一个 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();
我可以用模拟器和我的手机成功发送消息,因为它们连接到同一个wifi连接,但如果设备没有连接到同一个网络,消息不会发送到服务器。我希望每个人都能够向我的计算机服务器发送消息,无论他们的互联网连接如何。
我该如何解决这个问题?
【问题讨论】:
标签: android sockets server client