Java Android应用程序通过套接字与服务器通信
我正在制作一个与服务器通信的Android应用程序。当安卓手机收到短信时,我希望它通过一个插座发送到我的服务器 公共类服务器{Java Android应用程序通过套接字与服务器通信,java,android,sockets,Java,Android,Sockets,我正在制作一个与服务器通信的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()
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应用程序调用客户端类时,我没有获得任何连接。
有人知道如何解决这个问题吗
当手机收到消息时,从onReceive(Context-Context,Intent-Intent){方法调用类“Client”。您的Android客户端正在尝试创建一个连接到IP 127.0.0.1的套接字,IP 127.0.0.1是环回地址。您实际上是在尝试连接到自己 改变
Socket socket = new Socket("127.0.0.1", 8080);
到
请不要直接将其更改为“您的服务器的IP”:)将其设置为192.168.1.104或网络上的任何服务器地址。您的Android客户端正在尝试创建一个连接到IP 127.0.0.1的套接字,IP 127.0.0.1是环回地址。您实际上是在尝试连接到自己 改变
Socket socket = new Socket("127.0.0.1", 8080);
到
请不要直接将其更改为“您服务器的IP”:)将其设置为192.168.1.104或网络上的任何服务器地址。我解决了它,忘了将其添加到我的androidmanifest.xlm中
< uses-permission android:name="android.permission.INTERNET">< /uses-permission>
我解决了它,忘了将它添加到我的androidmanifest.xlm中
< uses-permission android:name="android.permission.INTERNET">< /uses-permission>
您得到的错误是什么?请发布堆栈跟踪。另外,您是在模拟器或真实设备上测试它吗?没有堆栈跟踪,因为服务器正在等待响应。我正在运行模拟器,等待java应用程序中运行的程序的响应。您可以使用简单的telnet测试服务器套接字吗?我可以尝试,只是哈I’我要先学习如何操作。当我在cmd中启动Server.java类型telnet 127.0.0.1 8080时,只有一个黑屏。我假设存在连接。您得到的错误是什么?请发布堆栈跟踪。另外,您是否在模拟器或真实设备上测试它?没有堆栈跟踪,因为服务器正在等待响应。Im运行正在安装模拟器并等待java应用程序中运行的程序的响应。您可以使用简单的telnet测试您的服务器套接字吗?我可以尝试,但必须先了解如何进行测试。当我启动server.java时,cmd中的telnet 127.0.0.1 8080类型只有一个黑屏。我假设现在有一个使用IPV4地址的connectionIm。W当我用telnet测试它时,我得到一个响应,所以我知道有一个连接。但它仍然不会干扰android应用程序。你使用的是外部IP地址还是网络本地IP地址?它是本地地址,我在笔记本电脑上运行服务器应用程序和android模拟器。Socket Socket=新套接字(“78.91.18.55”, 8080);//这可以从其他计算机上使用,但不能从这个应用程序使用IPV4地址。当我用telnet测试它时,我得到一个响应,所以我知道有连接。但它仍然不会干扰android应用程序。你是使用外部IP地址还是网络本地IP地址?这是一个本地地址,我正在运行服务器应用程序我的笔记本电脑上的阳离子和android模拟器。Socket Socket=new Socket(“78.91.18.55”,8080);//这可以从其他计算机上使用,但不能从这个应用程序使用