繁体   English   中英

需要与 Java Android Studio 中本地托管的 TCP/IP 服务器进行通信

[英]Need to communicate with a TCP/IP locally hosted server in Java Android Studio

我有以下情况。 我有一个在端口 8090 上运行的本地托管 TCP/IP 服务器,我需要能够从我的 android 应用程序向它发送命令。 服务器应该接受该命令并返回我需要的一组信息。 我无权访问服务器或服务器日志。

我一直在尝试的

简单的套接字连接似乎连接得很好。 但是在使用 printWriter 并向服务器发送我的命令之后。 BufferedReader 卡在 reader.readLine() 或 .read() 上。 我假设服务器没有响应我的命令,作者没有正确书写(我怎么知道?)或者这种方法不适合手头的情况。

一直在尝试使用 URL 和 HTTPURLConnection 对象来做这件事,但我不确定我做的是否正确。

我确实有可以发布的代码,但我认为它尚不相关。

你有什么建议?

请求的代码

                        Socket socket = new Socket("10.0.0.16", 8090);

                        //Send message to server
                        OutputStream os = socket.getOutputStream();
                        OutputStreamWriter osw = new OutputStreamWriter(os);
                        BufferedWriter bw = new BufferedWriter(osw);

                        String number = "message";

                        String sendMessage = number + "\n";
                        bw.write(sendMessage);
                        bw.flush();
                        System.out.println("Message sent to the server : "+sendMessage);
                        Thread.sleep(10000);
                        //Get the return message from the server
                        InputStream is = socket.getInputStream();
                        InputStreamReader isr = new InputStreamReader(is);
                        BufferedReader br = new BufferedReader(isr);
                        String message = br.readLine();
                        System.out.println("Message received from the server : " +message);

本地主机是指运行代码的设备,在本例中是模拟器。

如果要引用运行 Android 模拟器的计算机,请改用 IP 地址 10.0.2.2。 您可以从这里阅读更多内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM