java - Android 服务器 PC 客户端

标签 java android

我正在尝试让 PC 客户端连接到 Android 服务器。这是在模拟器中运行的。我无法让 PC 客户端连接。

安卓服务器..

try {
        serverSocket = new ServerSocket( 1234 );

        //tell logcat the server is online
        Log.d("TCP", "C: Server Online...");

        while ( true ) {
            Log.d("TCP", "C: Waiting for client" );

            Socket client = serverSocket.accept();

            Log.d("TCP", "C: Client has connected" );

            BufferedReader in = new BufferedReader(
                    new InputStreamReader( 
                            client.getInputStream() ) );
            String input = in.readLine();

            Log.d("TCP", "C: " + input );

            client.close();
        }
    } catch ( Exception e ) {
        Log.d( "TCP", "C: " + e );
    }

和PC客户端

String host = "127.0.0.1";

//Port the server is running on.
int port = 1234;

//Message to be sent to the PC
String message = "Hello from  pc.";
//Get the address of the host.
InetAddress remoteAddr = InetAddress.getByName( host );

//Tell the user that we are attempting a connect.
System.out.println("Attempting connect");

//Make the connection
Socket socket = new Socket(host, port);

//Tell user the connection was established
System.out.println("Connection made");

//Make the output stream to send the data.
OutputStream output = socket.getOutputStream();
PrintWriter out = new PrintWriter(new BufferedWriter(
    new OutputStreamWriter(output)), true);

//Send the data.
out.println(message);

//Tell user the message was sent
System.out.println("Message sent");

我一直收到 PC 上连接被拒绝的消息。有人可以帮我解决这个问题吗?干杯

最佳答案

来自 Emulator Networking 的文档...

The virtual router for each instance manages the 10.0.2/24 network address space

最重要的是,模拟设备自身的网络地址是 10.0.2.15。

我不使用模拟器,但据我所知,您需要设置从 127.0.0.1:<host-port> 的重定向至 10.0.2.15:<guest-port> .请参阅 Setting up Redirections through the Emulator Console 的文档.

正如我所说,我不使用模拟器,但这是我理解的工作方式。

关于java - Android 服务器 PC 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7882772/

相关文章:

java - FreeTTS 可移植性问题

使用-engine classic时Android模拟器错误 "Missing emulator engine program for ' x8 6' CPU"

java - 数组有时无法按预期工作

android - react native android 键盘事件

java - WeakReferences、Weakashmaps、softreferences 的用途是什么?

java - 是否有任何与 PHP 的 http_build_query 函数等效的 Java?

java - Spring messageSource 只能作为 xml 工作(不能作为 Spring-Java-Config)

Ubuntu 16.04 上的 JavaFX 媒体播放器

java - 如何自动化 Android 应用程序构建

android - Android 项目中的测试 apk 在哪里?