fruitpoppy 2023-03-20 16:09 采纳率: 50%
浏览 51
已结题

安卓开发,手机和电脑不在同一局域网内,如何通信?

安卓开发,手机和电脑不在同一局域网内,如何通信?

我使用okhttp实现数据传输,手机和电脑后台在同一局域网时可以通信,但是不在同一局域网时就显示“failed to connect to 电脑ip(port 82) from 手机ip (port 60998) after 10000ms”。

后台是Flask,加了flask_cors跨域,还是无法连接

如果手机使用流量,电脑使用wifi的情况下,如何使手机app连接到电脑后台呢?

安卓app连接部分代码

void postRequest(String postUrl, RequestBody postBody) {

        OkHttpClient client = new OkHttpClient();

        Request request = new Request.Builder()
                .url(postUrl)
                .post(postBody)
                .build();

        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                // Cancel the post on failure.
                call.cancel();
                Log.d("FAIL", e.getMessage());

                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        TextView responseText = findViewById(R.id.responseText);
                        responseText.setText("Failed to Connect to Server. Please Try Again.");
                    }
                });
            }

电脑端代码

import flask
from flask_cors import CORS
import werkzeug
import time

app = flask.Flask(__name__)

@app.route('/', methods = ['GET', 'POST'])
def handle_request():
    return "Image(s) Uploaded Successfully. Come Back Soon."

if __name__=='__main__':
    app.run(host="0.0.0.0", port=82)
    CORS(app)

  • 写回答

4条回答 默认 最新

  • 立青_ 2023-03-20 16:20
    关注

    不在同一局域网,那就得在公网上啊,否则不可能凭空连啊。
    自己电脑一般没有公网ip,要用内网穿透。花生壳啥的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月8日
  • 已采纳回答 3月31日
  • 创建了问题 3月20日

悬赏问题

  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法