本来想用socket在两台电脑建立连接的,首先要确保两台电脑是可以ping通的。
主机和别的主机共用一个运营商ip
电脑A的运营商ip(在百度搜索ip得到的)是180.160.56.159;主机ip是(在dos下ipconfig命令)是:192.168.1.100
电脑B的运营商ip(在百度搜索ip得到的):222.66.117.26;主机ip是(在dos下ipconfig命令):192.168.1.1。
直接在电脑A上ping B 的运营商ip或者主机ip都不能ping通(反过来也是一样)。那么对于这种情况下怎样ping通呢。
首先,根据问题电脑A的IP是192.168.1.100(地址1),但是运营商IP地址为180.160.56.159(地址2),地址1为私网地址,地址2为公网IP,在这两个地址之间有一台设备(设备X)使用了类似NAT加DHCP这些技术。
同理电脑B也是这样的情况,电脑B的设备称之为(设备Y)所以只能将设备X与设备Y上配置VPN,使两边可以使用VPN联通,这样就可以实现PING通。
建立一个域就可以ping同
首先不应该ping运行商ip,要想两主机ping通,必须在逻辑上保证两主机是相连的,要想ping通:检查硬件线路;防火墙是否关闭;是否设置默认网关;而且与转接设备(如交换机,路由器)的相关配置有很重要的联系
192.168.1.100
192.168.1.1
这两个用内网不就可以了?
都在一个网段,
另外,你可以检查下,是不是防火墙没开,
也可以用域名解析到两个IP,然后通过域名进行访问。
内网ip的话,直接ping 192.168.1.*就可以;外网的话直接ping对应ip不行,需要路由绑定一个ip映射的端口,这样你才可以进行soket通信,你的外网ip并没有映射到你电脑,路由里面有转发规则,自己可以找一下
看你的问题是要写一个点对点通讯的程序,只要两台电脑都能访问外网,理论上他们就是联通的,但是想要互相通讯,却要越过不少关口的
我以我能想到的情况给你一些参考。首先,你要有开端口的权限,如果你是公司内网或校园网内的电脑,那么除非常用端口,比如上网浏览的80端口会开放,
其他端口很可能被屏蔽了,这些情况你就要询问你的网管理。
如果你的两台要通讯的终端都是通过路由器直连到外网的,就只需要设置路由器的端口转发就可以了,你提到的ping不通对方,也可能是路由器的
设置里根本就不响应外来的ping命令,一般路由器设置里是连出去没限制,连进来就要开路由器的端口转发了。
比如你发起连接的程序要连接对方12345端口吧,那么对方路由器就要打开12345端口,允许外面的连接进来,进来的数据连接给谁?就是转发咯。
这里你提到的电脑B的IP貌似不对,不应该是192.168.1.1,像是路由器的默认IP,我不能确定,所以我这里举例子B发起连接到A,设置A端的路由器端口转发,
找到A端路由器设置端口转发的界面(这里各种路由界面不同,无法详细描述了),新建或自定义一个转发规则,
端口12345,内部IP192.168.1.100,保存,就是告诉这个路由器,所有外面要连接12345端口的请求,都给我转发到192.168.1.100的12345端口,现在你就可以试试B端连A端了,祝你好运:)
不是直接ping对应的ip就可以了吗
搭建一个VPN,将两个主机都加入到VPN网络里面,形成一个局域网,这样就可以通信了。这两个主机的IP地址也会发生变化,VPN网络会重新分配IP
你想通过socket程序建立tcp或者udp连接测试收发数据吗?
简而言之,内网千千万,都可以重复,外网唯一
如果想在两个不知道外网是否相同的内网间ping
只能先建立连接 可以查询NAT,网络地址转换理解一下
网上查找:
添加双IP和双网关,就PING通。也可以通过设置路由表解决
例如二个网段,0网和1网 网段之间已经联通,但不能PING通
可以给电脑设置 二个IP 0网段和1网段各一个,和相应的网关,试下PING通已经可以
也可以设置核心路由中 路由表 加一条就解决
socket建立两台电脑的连接,如果用TCP/IP协议的话,只需要保证服务器端(监听端口等待连接的那一端)可见。
可见可以是直接可以访问,或者经过端口映射把服务器端监听的端口映射到外网(或者某一个客户端可以访问的子网)。
然后客户端直接连接映射到最后的那个ip地址和端口。
Ping 是Windows、Unix和Linux系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络 是否连通,可以很好地分析和判定网络故障。应用格式:Ping空格IP地址。该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明