【android 学习记录】Android应用与Python通信

本文记录了在不同网络环境下,Android应用与Python服务端进行通信的问题与解决方案。在宿舍WiFi下,Android APK能成功连接Python服务器,但在手机热点WiFi下连接失败。改为Python作为客户端,Android作为服务端后,通信成功。文章提供了关键代码示例。
摘要由CSDN通过智能技术生成

1 概述

前几天在调试某应用的远程利用漏洞的时候,遇到一个问题,折腾了好久,在此记录一下
场景1:宿舍wifi
使用python 搭建server,使用android编译apk 远程connect python server —成功
场景2:手机热点wifi
使用python 搭建server,使用android编译apk 远程connect python server —失败,connect timeout
即使是设置为超长的时间也不能
场景3:手机热点wifi/宿舍wifi
使用python 搭建client,使用android编译apk 最为server端 —成功连接
即使是设置为超长的时间也不能

目前为止,关于场景2为什么会失败,始终没有找到答案,在overflow上找了半天也没有答案,如果有人了解,请留言或者私信
参考文章:

TCP socket Android客户端 Python服务
Android客户端和Python服务器通信(一)

2 案例

2.1 python 服务端<---->Android 客户端

2.1.1 APK 关键代码

private void startNetThread(final String host, final int port) {
   
    new Thread() {
   
        public void run() {
   
            try {
   
                execCommandDemo();
                //创建客户端对象
                System.out.println("host = " + host);
                Socket socket = new Socket(host, port);
                String send_data = "please send cmd";                
                OutputStream outputStream = socket.getOutputStream();//获取客户端对象的输出流                
                outputStream.write(send_data.getBytes());//把内容以字节流的形式写入(data).getBytes();
                outputStream.flush();//刷新流管道

                InputStream is = socket.getInputStream(); // 获取 cmd
                
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值