客户服务器方式与对等通信方式的主要区别是什么?有没有相同的地
1、主要区别:客户服务器描述的是进程之间的服务与被服务的关系,客户是服务请求方,服务器是服务;而对等通信方式并不区分哪一个是服务请求方还是服务提供方,只要两个主机都运行了对等连接软件,就可以进行平等的、对等连接通信。
2、相同的地方:客户服务器方式和对等通信方式都是端系统运行的程序之间的通信方式。对等连接方式从本质上看仍然是使客户服务器方式,只是对等连接中的每一个主机既是客户又同时是服务器。
客户端程序和服务器之间通信用这是网络传输层的问题,在传输层上主要就是两种数据包,即为TCP(可靠连接)、UDP(不可靠连接),这个其实与你想要做的服务器和程序设计没有大的关系,不知道你要搭建什么服务器,是windows还是linux 服务器,在windows下面一般是ASPnet +SQL server (很多人现在也在windows下做apacha+php+mysql); 在linux下面是apacha+php+mysql;网站使用的是HTTP协议来实现网站的建设
如果只是两个客户端和一个服务器,可通过服务器转发即可,两个客户端连接到服务器,服务器把从A接收到的发给B,把从B接收到的发给A即可,如果要做成多个客户端的,则要给各个客户端分配ID,服务端好根据各个客户端和消息要转发送给客户端的ID来确定消息发送对象。
(1) 连接 当客户在浏览器上键入或单击一个URL时,客户程序就在网络上搜索定位正确的服务器,并与其连接。
(2) 请求 在连接后,客户程序向服务器发出一个请求,要求服务器向自己发送指定的信息。
(3) 响应 服务器收到请求,就向客户端传回所需要的文件。
(4)关闭 服务器发出数据后,就断开与客户端的连接,以便接受其他客户的连接。
P地址是4个双字节的IP地址 如果该客户机是位于一个局域网里 那么就会有2IP地址 内网IP 外网IP 网络中的客户IP当然是使用外网IP 整么会不是呢
实现P2P的方法
把服务器简单称为S 客户端为C
第一种情况 当C1与C2同时都位于外网的时候 那么C1可以直接向C2发送信息 C2也可以直接向C1发送信息
第二种情况 当C1位于外网 而C2 是在一个局域网里的时候 C2可以直接向C1发信息 C1能收到 而C1向C2发送信息到达LAN的时候那么 传送信息包里的端口就会被改变 C2就无法接受到该信息 如果要让C2能接受到信息 那么C2就要先发送一个信息给C1 这个时候C2就打上了一个洞 能让C1 的指定端口发送信息到C2 这样C2就能接受到该信息
第三种情况 也是最难的 C1与C2 分别位于不同的局域网了 那么就需要C1与C2先向服务器发送信息打洞 然后各自向对方的洞里发送一个信息 然后就可以实现P2P了
以上就是所谓的打洞技术
0条评论