1. 服务端

接收两张图像的地址,返回这两张图像的相似度

import os, shutil, requests
import cv2
import numpy as np
import imgs_similari_api
from flask import Flask,render_template,request def cleanfiles(temproot):
if os.path.exists(temproot):
shutil.rmtree(temproot)
os.makedirs(temproot) app = Flask(__name__) @app.route("/")
def index():
return render_template("index.html") @app.route("/imgsimilar",methods = ['GET', 'POST'])
def login():
if request.method == "POST":
imgurl1 = request.form.get('imgurl1')
imgurl2 = request.form.get('imgurl2')
print(imgurl1)
print(imgurl2)
print('downing ... ...')
r = requests.get(imgurl1)
r.raise_for_status()
# clean files
cleanfiles('./tempimgs')
with open('./tempimgs/abc1.jpg','wb') as f:
f.write(r.content)
f.close()
r = requests.get(imgurl2)
r.raise_for_status()
with open('./tempimgs/abc2.jpg','wb') as f:
f.write(r.content)
f.close()
image1 = cv2.imread('./tempimgs/abc1.jpg')
image2 = cv2.imread('./tempimgs/abc2.jpg')
print('computing ... ...')
value_img_similar = imgs_similari_api.classify_hist_with_split(image1, image2)
return {'sorce':str(value_img_similar)}
else:
return "<h1>login Failure !</h1>" if __name__ == '__main__':
host = '127.0.0.1'
port = '8888'
app.run(debug=True, host=host, port=port)

2. 内网穿透

使用NATAPP的免费服务,先去注册,在依次进入“我的渠道”>>“购买渠道”>>“免费渠道”,设置一下端口就可以购买了。

接下来下载客户端和配置config.ini,只需要修改authtoken,换成你自己的authtoken。

运行客户端

获得映射网址,如:http://aaa.natappfree.cc -> 127.0.0.1:8888(8888为购买时设置的端口)(注意:每次开启内网穿透服务,地址会变化!!!)

3. 客户端

#coding=utf-8
import requests s = requests data={'imgurl1':'https://ps.ssl.qhmsg.com/bdr/720__/t017843e759f2628d1f.jpg', 'imgurl2':'https://ps.ssl.qhmsg.com/bdr/720__/t017843e759f2628d1f.jpg'}
r = s.post('http://aaa.natappfree.cc/imgsimilar', data) print(r.text)

4. 运行

实际的步骤是先搞定内网穿透,再写好服务端和客户端程序(本文的服务端程序缺少计算图像相似度算法不能运行,仅作示意)。

总结就是:开启内网穿透服务>>开启服务端服务>>客户端调用

现在全球各地都可以通过这个方式调用你写好的功能了!!!

【python + NATAPP】实现内网穿透的简易数据传输的更多相关文章

  1. Windows搭建IIS服务器使用NATAPP实现内网穿透

    目的:外网可以访问本地网页. 步骤: 一.实现内网访问 1.Win+Q搜索[控制面板],选择[程序],点击[启用或关闭Windows功能], 2.勾选[Internet Information Ser ...

  2. natapp 内网穿透服务

    参考文章:https://www.jianshu.com/p/91a321e584b8 参考文章:https://www.jianshu.com/p/c4cb8666c96a 一.什么是内网穿透 通过 ...

  3. 如何使用natapp来实现内网穿透及案例

    1. 业务场景 当我们的项目是部署在本地的时候,如何让其他用户(不在同一个局域网之下)来进行调用呢?这时我们就可以使用内网穿透将自己的IP通过映射成相应的地址,然后再通过映射后的地址来进行访问本地的项 ...

  4. 旧手机改造成web服务器并实现内网穿透

    前几天由于gitee的审核引擎一通乱杀,使得gitee pages停止提供服务,心生更换服务器或者其他pages托管的想法,看了看价格感人的云服务器以及空空的钱包,这时,脑子有个奇怪的想法飘过,自己搞 ...

  5. 本地Linux虚拟机内网穿透,服务器文件下载到本地磁盘

    本地Linux虚拟内网穿透 把服务器文件下载到本地磁盘 https://natapp.cn/ 1.注册账户点击免费隧道  

  6. Mac配置内网穿透

    闲语: Java开发过程中,往往会对接第三方,而在对接过程中,双方间使用的最多的"通讯"方式就是异步通知.可是异步通知过程中,只能通知到外网地址,可是在调试过程我们都是在本地进行- ...

  7. 内网穿透访问Vue项目的时候出现Invalid Host header解决办法

    适用场景: 在本地的Vue-cli3项目, 需要其他人浏览. 如果没有外网的服务器, 可以把自己的电脑当做服务器. 这时候需要外网的人能访问到自己的电脑. Mac内网穿透工具:natapp Inval ...

  8. 基于4G Cat.1的内网穿透实例分享

    上一篇分享了:小熊派4G开发板初体验 这一篇继续BearPi-4G开发板实践:内网穿透实验. 基本TCP的socket通信测试 之前我们学习WiFi模块时,与PC进行TCP协议的socket通信测试我 ...

  9. NATAPP--实现SSH内网穿透

    NATAPP--实现SSH内网穿透 1. 关于Natapp 2. 使用Natapp 3. Natapp安装和配置 4. XShell连接 相关参考博文原文地址: CSDN:KevenPotter:NA ...

随机推荐

  1. 【大厂面试02期】Redis过期key是怎么样清理的?

    PS:本文已收录到1.1K Star数开源学习指南--<大厂面试指北>,如果想要了解更多大厂面试相关的内容,了解更多可以看 http://notfound9.github.io/inter ...

  2. RocketMQ系列(一)基本概念

    RocketMQ是阿里出品的一款开源的消息中间件,让其声名大噪的就是它的事务消息的功能.在企业中,消息中间件选择使用RocketMQ的还是挺多的,这一系列的文章都是针对RocketMQ的,咱们先从Ro ...

  3. Java实现 LeetCode 658 找到 K 个最接近的元素(暴力)

    658. 找到 K 个最接近的元素 给定一个排序好的数组,两个整数 k 和 x,从数组中找到最靠近 x(两数之差最小)的 k 个数.返回的结果必须要是按升序排好的.如果有两个数与 x 的差值一样,优先 ...

  4. Java实现 LeetCode 328 奇偶链表

    328. 奇偶链表 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起.请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性. 请尝试使用原地算法完成.你的算法的空间复杂 ...

  5. java实现迷宫走法

    ** 迷宫走法** 迷宫问题 对于走迷宫,人们提出过很多计算机上的解法.深度优先搜索.广度优先搜索是使用最广的方法.生活中,人们更愿意使用"紧贴墙壁,靠右行走"的简单规则. 下面的 ...

  6. 关于uniapp获取当前距离屏幕顶部的距离

    onPageScroll(e){ console.log(e); }

  7. CVE-2020-0796漏洞复现(RCE)

    0x01 漏洞简介 2020年3月10日,微软在其官方SRC发布了CVE-2020-0796的安全公告(ADV200005,MicrosoftGuidance for Disabling SMBv3 ...

  8. c/c++混编

    /* head.h */#ifndef __SUM_H__ #define __SUM_H__ #ifdef __cplusplus extern "C" { #endif int ...

  9. Nginx解决前端调用后端接口跨域问题

    1.项目中遇到的问题描述: 前端调用zuul统一网关服务接口,请求状态码200,但是无返回数据. 浏览器控制台报错信息:No  Access-Control-Allow-Origin header i ...

  10. 记录一次更改服务器名称导致mysql 不能正常登录、启动

    由于客户要求更改服务器的名称,以便区分多台服务器:修改前mysql 能正常登录,但是修改后,登录时报错: Enter password: ERROR 1524 (HY000): Plugin '*C6 ...