我正在制作一个与服务器通信的Android应用。当Android手机收到短信时,我希望它通过套接字发送到我的服务器。
公共类服务器{
public static final int PORT = 8080;
public static void main(String[] args) throws IOException {
ServerSocket s = new ServerSocket(PORT);
try {
Socket socket = s.accept();
try {
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String str = in.readLine();
System.out.println(str);
}
finally {
socket.close();
}
}
finally {
s.close();
}
}
}
这是我的客户:
public Client(String message){
try {
Socket socket = new Socket("127.0.0.1", 8080);
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
out.println(message);
socket.close();
}catch(Exception e){
e.printStackTrace();
}
}
当我从Android应用程序调用Client类时,我没有得到任何连接。 有谁知道如何解决这个问题?
当在电话上收到消息时,从onReceive(上下文上下文,Intent intent){方法调用类'Client'。
答案 0 :(得分:2)
您的Android客户端正在尝试创建一个连接到IP 127.0.0.1的套接字,这是一个环回地址。你本质上是想与自己建立联系
更改
Socket socket = new Socket("127.0.0.1", 8080);
到
Socket socket = new Socket("your server's IP", 8080);
请不要将其改为“您的服务器的IP”:)使其成为192.168.1.104或网络上的服务器地址。
答案 1 :(得分:1)
我解决了,忘了把它添加到我的androidmanifest.xlm
< uses-permission android:name="android.permission.INTERNET">< /uses-permission>