Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android应用程序通过套接字与服务器通信_Java_Android_Sockets - Fatal编程技术网

Java 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()

我正在制作一个与服务器通信的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应用程序调用客户端类时,我没有获得任何连接。 有人知道如何解决这个问题吗


当手机收到消息时,从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);//这可以从其他计算机上使用,但不能从这个应用程序使用