服务器端bind的是本机IP
客户端connect的是服务器的IP想问一下这两个IP都是广域网上的IP吗?
如果客户端在局域网内,服务器在广域网内,IP应该怎么设?像qq那样的C/S系统,IP是怎么设的?因为我发现局域网内既有局域网内的IP,也有广域网内的IP,这两个什么关系?初学!搞不清!望大虾指点!
客户端connect的是服务器的IP想问一下这两个IP都是广域网上的IP吗?
如果客户端在局域网内,服务器在广域网内,IP应该怎么设?像qq那样的C/S系统,IP是怎么设的?因为我发现局域网内既有局域网内的IP,也有广域网内的IP,这两个什么关系?初学!搞不清!望大虾指点!
解决方案 »
- 散分6
- 进来给个建议吧,谢谢
- 请教VC Project setting C/C++页关于Project Options下面设置的意义??
- 不得不问:初次使用ADO操作MDB文件的问题,急!
- 在VC中使用DOS 命令,怎么作
- 如何添加可供编辑的FORM?(表述不是很准确,详细请进)
- 如何获得Cimage对象的左上顶点坐标???
- vc+access+ado建mdb文件+建表后,出现的问题,希望高手帮忙解答
- MFC使用socket从客户端读取的文件内容传送到服务器端,客户端ok,服务器端显示文件前半部分ok,后半部分居然乱码!?
- COleVariant类怎么转换为int?
- vs2010与 vc6.0 CString中GetLength的区别如何解决?
- 怎么获取视图指针?
其中一台的局域网路由器做一个端口映射,相当于一台机器开放一个公网IP下的端口。思路如下:
A->B打洞过程:说明:
A:用户A
B:用户B
NA:NAT网络A
NB:NAT网络B
Server C为外网的机器(服务器或消息中转站)A想与B建立通信通道,A to B打洞:
1.A ---> NA ---> Server C ---> NB ---> B
2.B---->A (打洞完成)1,如果A想与B通信;
2,A首先连接 C, C得到A的外网NA的地址和端口;
3,B也要连接C,C得到B的外网NB的地址和端口;
4,A告诉C说我要和B通讯;
5,C通过NB发信息给B,告诉B A的外网NA的地址和端口;
6,B向NA发数据包(肯定会被NA丢弃,因为NA上并没有 A->NB 的合法session),
但是NB上就建立了有B->NA的合法session了;
7,B发数据包给C,让 C 通知 A,我已经把洞打好了;
8,A接受到通知后向 B 的外网发NB数据包,这样就不会被丢弃掉了。因为对于NB来说,它看到的是A的外网NA的地址,
而通过第6步,B已经让NA成为NB的合法通信对象了。所以当NA发数据包给NB时,NB就会接收并转发给B;
==只要服务器在广域网就够了。然后客户端局域网能够连接广域网即可(也就是所谓的上网)
要连接公网 要做NAT穿透,首先都必须内网去连接公网IP,NAT会给你分配IP和PORT,然后看不同的NAT类型,有的服务端收到后,可以回包过来,有的不行
QQ那样的,都需要服务端做中端,有可能有几层在做中转,
搜了一下都感觉很抽象
可以直接写入IP的情况:
客户端和服务器端在同一局域网内、服务器端在广域网内(包括客户端在局域网和客户端在广域网)直接bind不支持,需要做NAT穿透:
客户端和服务器端在两个局域网内、客户端在广域网服务器在局域网
你理解的不大对,NAT穿透对你的通信程序来说是透明的。你只需关心能够访问到服务器的IP地址,即可确认是否可以通信。
如果你的服务器是局域网中的一台计算机,那么在网络服务器上也可以用端口映射的方法将这台服务器让外部的计算机能够访问到。
上面已经说了,确定服务器端是否可以连通,只需要在客户端ping ip地址就行嘞
内网:就象你小时候,什么事都有爸妈顶这,爸妈做主,都要通过爸妈。没有身份证。
外网:就象你张大了,什么事都可以自己做主了。有身份证了,要自己承担法律责任了。
------------------------------------------------
内网也就是局域网,最直观的就是像网吧,公司内部的电脑用交换机,HUB,路由连起来的。再通过光钎。猫接入INTERNET的。
外网就像你家里的一台电脑。用猫拨号上的,有个外部IP的。
----------------------------------------------------------------
什么是内网、公网
内网、公网是两种Internet的接入方式。
内网接入方式:上网的计算机得到的IP地址是Inetnet上的保留地址,保留地址有如下3种形式:
10.x.x.x
172.16.x.x至172.31.x.x
192.168.x.x
内网的计算机以NAT(网络地址转换)协议,通过一个公共的网关访问Internet。
内网的计算机可向Internet上的其他计算机发送连接请求,但Internet上其他的计算机无法向内网的计算机发送连接请求。
公网接入方式:上网的计算机得到的IP地址是Inetnet上的非保留地址。公网的计算机和Internet上的其他计算机可随意互相访问。
2、2个都在公网,也没有问题,只要IP地址互通,就没有问题,和内网一样
3、客户端在内网,服务器在公网,这样也没有问题,直接链接即可
4、客户端在公网,服务器在内网,你需要使用端口映射等来把端口和你的内网的IP进行绑定,路由器或者一些防火墙都可以实现,但是这个路由器或者防火墙需要公网IP。然后你对这个公网的IP和端口的链接都可以映射到你的内网的服务器上。当然这个时候的IP地址和端口不是你的真实的内网的机器的端口和IP,而是你的路由器或者防火墙的IP和端口。不知道明白吗