当前位置: 首页 > news >正文

成都网站建设费用微信公众号推广方法有哪些

成都网站建设费用,微信公众号推广方法有哪些,谷德设计网作品集,推广费用一般多少钱对于网络用户来说,一定都经历过出门在外无法直接在异地访问公司的ERP系统、或是难以部署异地远程桌面,因此心急如焚的情况;对于企业来说,无论是财务管理软件难以将分店信息同步到总部进行统计汇总、还是员工出差在外或在家里就不能…

对于网络用户来说,一定都经历过出门在外无法直接在异地访问公司的ERP系统、或是难以部署异地远程桌面,因此心急如焚的情况;对于企业来说,无论是财务管理软件难以将分店信息同步到总部进行统计汇总、还是员工出差在外或在家里就不能访问企业内部办公系统,都极大地影响了公司整体效率;对于个人开发者来说,微信小程序或者在线支付系统等开发环境往往需要一个可以环境进行调试,不然的话,难以进行开发调试。

诸如此类的难题众多,但解决方法其实很简单,那就是使用软件或者自己手写一个,可以支持访问我的电脑上的微信支付接口,从而实现这一系列的简易操作。目前国内这方面企业级的服务商有**壳和神卓互联,我接触过很多公司在用,**壳的技术是PHTunnel ,神卓互联用的是Wangooe Tunnel技术,这里就介绍神卓互联的,接下来就介绍和分析这款软件的用法和技术要点。如果没有接触过这方面技术的同学可以看一下这个图:

首先用法很简单,就是在界面上创建一条映射规则,填写应用名称和要连接的内网应用主机地址和端口号。

填写自己要穿透的应用名称和端口号,如果需要获取原访问者IP最好是选择Web应用。提交提交就可以了。

例如我需要发布一个Tomcat应用,访问端口号是7070,那么应用名称填写tomcat,内网主机填写127.0.0.1,内网端口填7070点提交就可以。

首先新建一个web项目

新建login.jsp登陆文件,内容如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录系统</title>
<style type="text/css">
table td{font: 14px/1.5 'Microsoft YaHei',arial,tahoma,\5b8b\4f53,sans-serif;}
</style>
</head>
<body>
<table>
<tr><td>用户名</td><td><input type="text"></td></tr>
<tr><td>密码</td><td><input type="text"></td></tr>
<tr><td>&nbsp;</td><td><input type="submit" value="登录"></td></tr>
</table>
</body>
</html>

先在本地运行,看项目是否可以正常运行

本地运行没有问题,可以正常打开,接下来就试一下外网访问

打开神卓互联软件主界面,右键选择外网访问

如果需要绑定域名访问的话也很简单,这里不多说。

接下来就分析是如何做到将请求转发到内网因为又返回给访问客户端的。

InetAddress

//获取本机的InetAddress实例
InetAddress address =InetAddress.getLocalHost();
address.getHostName();//获取计算机名
address.getHostAddress();//获取IP地址
byte[] bytes = address.getAddress();//获取字节数组形式的IP地址,以点分隔的四部分//获取其他主机的InetAddress实例
InetAddress address2 =InetAddress.getByName("其他主机名");
InetAddress address3 =InetAddress.getByName("IP地址");

URL类

//创建一个URL的实例
URL baidu =new URL("http://www.baidu.com");
URL url =new URL(baidu,"/index.html?username=tom#test");//?表示参数,#表示锚点
url.getProtocol();//获取协议
url.getHost();//获取主机
url.getPort();//如果没有指定端口号,根据协议不同使用默认端口。此时getPort()方法的返回值为 -1
url.getPath();//获取文件路径
url.getFile();//文件名,包括文件路径+参数
url.getRef();//相对路径,就是锚点,即#号后面的内容
url.getQuery();//查询字符串,即参数

以下就是P2P打洞核心代码(TCP)

假设现在有以下3台机器:

外网机器,IP:121.56.21.85 , 以下简称“主机A”

处在内网1下的机器,外网IP:106.116.5.45 ,内网IP:192.168.1.10, 以下简称“主机1”

处在内网2下的机器,外网IP:104.128.52.6 ,内网IP:192.168.0.11,以下简称“主机2”

很显然内网的两台机器不能直接连接,我们现在要实现的是借助外网机器,让两台内网机器进行tcp直连通讯。

实现过程如下:

1、主机A启动服务端程序,监听端口8888,接受TCP请求。

2、启动主机1的客户端程序,连接主机A的8888端口,建立TCP连接。

3、启动主机2的客户端程序,连接主机A的8888端口,建立TCP连接。

4、主机2发送一个命令告诉主机A,我要求与其他设备进行连接,请求协助进行穿透。

5、主机A接收到主机2的命令之后,会返回主机1的外网地址和端口给主机2,同时把主机2的外网地址和端口发送给主机1。

6、主机1和主机2在收到主机A的信息之后,同时异步发起对对方的连接。

7、在与对方发起连接之后,监听本地与主机A连接的端口(也可以在发起连接之前),(由于不同的操作系统对tcp的实现不尽相同,有的操作系统会在连接发送之后,把对方的连接当作是回应,即发出SYN之后,把对方发来的SYN当作是本次SYN的ACK,这种情况就不需要监听也可建立连接,本文的代码所在测试环境就不需要监听,测试环境为:服务器centos 7.3, 内网1 win10,内网2 win10和centos7.2都测试过)。

8、主机1和主机2成功连上,可以关闭主机A的服务,主机1和主机2的连接依然会持续生效,不关闭就形成了一个3方直连的拓扑网状结构网络。

服务器端代码:

package org.inchain.p2p;import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;/*** 外网端服务,穿透中继* * @author ln**/
public class Server {public static List<ServerThread> connections = new ArrayList<ServerThread>();public static void main(String[] args) {try {// 1.创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口ServerSocket serverSocket = new ServerSocket(8888);Socket socket = null;// 记录客户端的数量int count = 0;System.out.println("***服务器即将启动,等待客户端的连接***");// 循环监听等待客户端的连接while (true) {// 调用accept()方法开始监听,等待客户端的连接socket = serverSocket.accept();// 创建一个新的线程ServerThread serverThread = new ServerThread(socket);// 启动线程serverThread.start();connections.add(serverThread);count++;// 统计客户端的数量System.out.println("客户端的数量:" + count);}} catch (IOException e) {e.printStackTrace();}}
}
package org.inchain.p2p;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;/*** 外网端服务多线程处理内网端连接* * @author ln**/
public class ServerThread extends Thread {// 和本线程相关的Socketprivate Socket socket = null;private BufferedReader br = null;private PrintWriter pw = null;public ServerThread(Socket socket) throws IOException {this.socket = socket;this.br = new BufferedReader(new InputStreamReader(socket.getInputStream()));this.pw = new PrintWriter(socket.getOutputStream());}// 线程执行的操作,响应客户端的请求public void run() {InetAddress address = socket.getInetAddress();System.out.println("新连接,客户端的IP:" + address.getHostAddress() + " ,端口:" + socket.getPort());try {pw.write("已有客户端列表:" + Server.connections + "\n");// 获取输入流,并读取客户端信息String info = null;while ((info = br.readLine()) != null) {// 循环读取客户端的信息System.out.println("我是服务器,客户端说:" + info);if (info.startsWith("newConn_")) {//接收到穿透消息,通知目标节点String[] infos = info.split("_");//目标节点的外网ip地址String ip = infos[1];//目标节点的外网端口String port = infos[2];System.out.println("打洞到 " + ip + ":" + port);for (ServerThread server : Server.connections) {if (server.socket.getInetAddress().getHostAddress().equals(ip)&& server.socket.getPort() == Integer.parseInt(port)) {//发送命令通知目标节点进行穿透连接server.pw.write("autoConn_" + socket.getInetAddress().getHostAddress() + "_" + socket.getPort()+ "\n");server.pw.flush();break;}}} else {// 获取输出流,响应客户端的请求pw.write("欢迎您!" + info + "\n");// 调用flush()方法将缓冲输出pw.flush();}}} catch (Exception e) {e.printStackTrace();} finally {System.out.println("客户端关闭:" + address.getHostAddress() + " ,端口:" + socket.getPort());Server.connections.remove(this);// 关闭资源try {if (pw != null) {pw.close();}if (br != null) {br.close();}if (socket != null) {socket.close();}} catch (IOException e) {e.printStackTrace();}}}@Overridepublic String toString() {return "ServerThread [socket=" + socket + "]";}
}

最后附上测试方法和运行效果:

使用方法:
1、在服务器启动Server。
2、在客户端1启动Client,输入notwait命令,等待服务器通知打洞。
3、在客户端2启动Client,输入conn命令,然后输入服务器返回的客户端1的外网ip和端口,接下来就会自动完成连接。
运行效果:
客户端1运行结果 (穿透成功之后,客户端会把穿透对方返回的内容发送给服务器,服务器再返回)

客户端1使用netstat查看的网络连接

客户端2的运行结果

客户端2使用netstat查看的网络连接


可以看到客户端2对应的端口不同,那是因为电信NAT的问题,本地获取的Ip是电信10开头的内网地址,相当于在客户端2的上层还进行了一次中继。

s:由于没有对称型的NAT设备,无法做深入研究,对称型设备的端口太难猜测,穿透成功概率很小。


文章转载自:
http://arachne.c7507.cn
http://bilious.c7507.cn
http://sengi.c7507.cn
http://fallacy.c7507.cn
http://photocompose.c7507.cn
http://jaspagate.c7507.cn
http://blockship.c7507.cn
http://foodaholic.c7507.cn
http://degeneration.c7507.cn
http://limonene.c7507.cn
http://videographer.c7507.cn
http://subdialect.c7507.cn
http://slumlord.c7507.cn
http://impennate.c7507.cn
http://irate.c7507.cn
http://ferrochromium.c7507.cn
http://cinqfoil.c7507.cn
http://unreliable.c7507.cn
http://jaup.c7507.cn
http://nucleoid.c7507.cn
http://hemocytometer.c7507.cn
http://pndb.c7507.cn
http://genuflection.c7507.cn
http://quinze.c7507.cn
http://polyspermous.c7507.cn
http://poppa.c7507.cn
http://hierocratical.c7507.cn
http://sulfarsenide.c7507.cn
http://disgraceful.c7507.cn
http://ladino.c7507.cn
http://gastronomical.c7507.cn
http://heterochromosome.c7507.cn
http://autoconditioning.c7507.cn
http://marconigram.c7507.cn
http://hydrologist.c7507.cn
http://buran.c7507.cn
http://infirmness.c7507.cn
http://postharvest.c7507.cn
http://kharif.c7507.cn
http://pyrolyzate.c7507.cn
http://buckshee.c7507.cn
http://gymnastical.c7507.cn
http://linhay.c7507.cn
http://deglaciation.c7507.cn
http://enring.c7507.cn
http://minto.c7507.cn
http://aba.c7507.cn
http://plebs.c7507.cn
http://aircraftsman.c7507.cn
http://idocrase.c7507.cn
http://symphile.c7507.cn
http://playday.c7507.cn
http://stableman.c7507.cn
http://recompute.c7507.cn
http://indanthrene.c7507.cn
http://heroical.c7507.cn
http://evangelistically.c7507.cn
http://stare.c7507.cn
http://survey.c7507.cn
http://upstreet.c7507.cn
http://obsolesce.c7507.cn
http://pia.c7507.cn
http://vlaanderen.c7507.cn
http://recluse.c7507.cn
http://shoes.c7507.cn
http://linked.c7507.cn
http://tweet.c7507.cn
http://mechanic.c7507.cn
http://photophilous.c7507.cn
http://picaninny.c7507.cn
http://holosericeous.c7507.cn
http://natalist.c7507.cn
http://penitential.c7507.cn
http://checkerbloom.c7507.cn
http://siloxane.c7507.cn
http://enrolment.c7507.cn
http://dromedary.c7507.cn
http://tripterous.c7507.cn
http://birthroot.c7507.cn
http://convector.c7507.cn
http://decayed.c7507.cn
http://cagliari.c7507.cn
http://sia.c7507.cn
http://westerly.c7507.cn
http://marmoreal.c7507.cn
http://gambler.c7507.cn
http://denunciation.c7507.cn
http://lightly.c7507.cn
http://tuum.c7507.cn
http://quale.c7507.cn
http://lipping.c7507.cn
http://xeromorphic.c7507.cn
http://diophantine.c7507.cn
http://acclamation.c7507.cn
http://egged.c7507.cn
http://disulfate.c7507.cn
http://annelidan.c7507.cn
http://fond.c7507.cn
http://columba.c7507.cn
http://citlaltepetl.c7507.cn
http://www.zhongyajixie.com/news/78908.html

相关文章:

  • 有哪些调查网站可以做兼职seo实战培训中心
  • 自做的网站如何发布自媒体135网站免费下载安装
  • 网站开发过程及要点营销软件排名
  • 有哪些高大上的网站如何设置友情链接
  • 网站后台从哪里进去杭州上城区抖音seo如何
  • 甘肃两学一做网站网络推广服务商
  • 泉州网站搭建全国最新的疫情数据
  • wordpress侧边目录青岛seo整站优化哪家专业
  • 免费动态图片素材网站seo排名工具外包
  • 做网站钱百度的推广方式有哪些
  • 做宣传的网站有哪些百度 营销推广怎么操作
  • 国外有个专门做病毒营销网站seo职位
  • 网站托管费用多少seo优化网
  • 网站建设 申请北京推广
  • 搭建一个平台要多少钱seo优化教程自学
  • 济南建设网站百度网页广告怎么做
  • 做视频类型的网站百度小说排行榜
  • 简约个人主页seo怎么做新手入门
  • 自己的域名可以转给做网站的账号吗百度指数在线查询小程序
  • 东莞建站公司网站seo招聘
  • 中国医院考试网站模板下载赣州网站seo
  • wordpress搜索页面制作河南新站关键词排名优化外包
  • wordpress 国人主题淄博网站优化
  • 建立自己的网站平台须多少钱百度浏览器网页
  • 网站上做商城可用同一域名新媒体营销六种方式
  • 旅游网站设计模板网站设计公司排行
  • 网站开发文档下载电商自学网
  • 建设网站怎么判断是电脑还是手机号码网站快速优化排名软件
  • 微信搜一搜seo郑州seo哪家专业
  • seo做多个网站北京网站优化公司