tcp外网通信

Posted littleheadache

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tcp外网通信相关的知识,希望对你有一定的参考价值。

1.

 Socket通信是不是只能在局域网中用?_百度知道 (baidu.com)

2.

 如何在内网搭建TCP服务器并能被外网直接访问? - OFweek物联网

3.这个讲的看懂了

实现方案
1、Server方在外网,Client方在内网,那么可以直接通过外网IP连接,不需要任何映射
2、Server方在内网,Client方不论在其他内网还是在外网,都需要Server方的监听端口有被外网访问的权限,可以通过端口映射的方式实现,如果没有自己的外网服务器做端口映射的话,建议你直接使用花生壳软件(摘自如果可以我愿争取的博客)

以聊天室为例。我们编写了服务器和客户机。当服务器已经在外网情况下。我们的客户机直接可以socket连接。

当我们的服务器和客户机都是初始情况,seriver还在内网(局域网)client在内网(或者外网)下我们需要先把服务器置于外网。让外界可以通过ip地址(网址)可以访问状态。比如外界访问了 103.46.129.43(一个网址ip地址)时。这是我们通过端口映射方式让它直接连接到我们的服务器。如图所示

  Java Socket 内网和外网之间的通信_java socket外网通信_杨涛的博客的博客-CSDN博客

如何快速判断IP是内网还是外网(转)

TCP/IP协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下:

10.0.0.0/8:10.0.0.0~10.255.255.255 
172.16.0.0/12:172.16.0.0~172.31.255.255 
192.168.0.0/16:192.168.0.0~192.168.255.255

使用保留地址的网络只能在内部进行通信,而不能与其他网络互连。如果要与外部通信,那么必须通过网关与外部通信,这里使用了NAT, NAPT技术就是用来保证通信的代理机制。

提示:上述IP地址中8/12/16代表子网掩码的意思,解释如下:

https://zhidao.baidu.com/question/323881138.html

http://baike.baidu.com/item/%E5%AD%90%E7%BD%91%E6%8E%A9%E7%A0%81

http://product.pconline.com.cn/itbk/wlbg/network/1305/3305361.html

子网掩码举例:子网掩码为8时,代表有8个1,也就是8位是网络位,二进制:11111111.0000000.0000000.0000000,十进制:255.0.0.0

另外,一些宽带运营商尽管也使用了非私有地址分配给用户使用,但是由于路由设置的原因,Internet上的其他用户并不能访问到这些ip。上面2部分IP都可称为内网IP,下面这部分IP不列入本次讨论范围。

NAT要求整个服务的连接是从内网向外网主动发起的,而外网的用户无法直接(主动)向内网的服务发起连接请求,除非在NAT的(所有)网关上针对服务的端口作了端口映射。NAT方式要求最外围的网关至少有一个公网的IP,可以访问显IP的外部服务器如:http://ipip.net获取到外部IP,将这个IP与自己机器上网络接口的ip比较,即可知道自己的ip是不是内网IP。

判断自己IP类型,可使用下面方法:

1、在命令台程序下,用ipconfig。

Windows用法:ipconfig

Linux用法:ifconfig

2、用tracert来判断IP类型。

如果第一个hops不是内网IP,那么自己就是外网IP了,反之,如果自己是内网IP,那么第一个hops显示的就是网关的内网IP。

用法:tracert www.baidu.com

3、编程获得(各平台有相应的方法,不一一列举)。

 

以上转自:http://blog.csdn.net/wqf363/article/details/1434051

以上是关于tcp外网通信的主要内容,如果未能解决你的问题,请参考以下文章

局域网主机如何通过socket访问外网服务器?

如何快速判断IP是内网还是外网(转)

tcp udp proxy

计算机基础之网络

智能家居系统-测试

TCP服务器是啥