网游的交互过程

n 架构选择
n 网络协议
n 连接方式
n 建立连接
n 相互发送数据

架构的选择
n 分为: BS Browser-Server )和 CS(Client-Server) 架构手机网游。
  1 BS 架构即(浏览器 - 服务器)架构, BS 架构手机网游目前主要由手机 WAP(Wireless application Protocol 无线应用协议 ) 浏览器实现,即基于手机 上的 WAP 浏览器浏览 WAP 服务器网站的多人手机游戏。比如我们公司之前 推出的 WAP 网游《幻姬》。(这种方式渐渐不被使用)
2 CS 架构即(客户端 - 服务器)架构, CS 架构的手机网游即通过在用手机户 终端安装游戏客户端软件来实现与手机网游服务器端交互。目前游戏客户端 主要针对 Android Iphone Symbian Palm Windows mobile 操作系统 Java Brew MTK 等平台开发。支持 PULL PUSH ,信息更加的主动和 及时。(这种方式成为开发的主流)

网络协议

一、 TCP 协议
n        TCP 是面向连接的通信协议 ,通过 三次握手 建立连接,通讯时完成时要拆除连接,由于 TCP 是面向连接的所以只能用于点对点的通讯。
n    TCP 提供的是一种 可靠的数据流服务 ,采用 带重传的肯定确认 技术来实现传输的可靠 性。 TCP 还采用一种称为 滑动窗口 的方式进行流量控制,所谓窗口实际表示接收能力,用以 限制发送方的发送速度。
n   如果 IP 数据包中有已经封好的 TCP 数据包,那么 IP 将把它们向 传送到 TCP 层。 TCP 将包 排序并进行错误检查,同时实现虚电路间的连接。 TCP 数据包中包括序号和确认,所以未按照 顺序收到的包可以被排序,而损坏的包可以被重传。
n    TCP 将它的信息送到更高层的应用程序,例如 Telnet 的服务程序和客户程序。应用程序轮 流将信息送回 TCP 层, TCP 层便将它们向下传送到 IP 层,设备驱动程序和物理介质,最后到接 收方。
二、 UDP 协议
n        UDP 是面向无连接的通讯协议 UDP 数据包括目的端口号和源端口号信息,由于通讯不需 要连接,所以可以实现广播发送。
n    UDP 通讯时不需要接收方确认,属于不可靠的传输,可能会出丢包现象,实际应用中要求 在程序员编程验证。


TCP 连接的建立
三次握手 (three-way handshake)
1 、第一次握手:客户端发送 syn (syn=j) 到服务器,并进入 SYN_SEND 状态,等待服务器确认;
2 、第二次握手:服务器收到 syn 包,必须确认客户的 SYN ack=j+1 ),同时自己也发送一个 SYN 包( syn=k ),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态;
3 、第三次握手:客户端收到服务器的 SYN ACK 包,向服务器发 送确认包 ACK(ack=k+1) ,此包发送完毕,客户端和服务器进入 ESTABLISHED 状态,完成三次握手。

TCP 所提供服务的主要特点
n 面向连接的传输
n 端到端的通信
n 高可靠性,确保传输数据的正确性,不出现丢失或乱
n 全双工方式传输
n 采用字节流方式,即以字节为单位传输字节序列
n 紧急数据传送功能


TCP 协议和 UDP 协议的区别
n TCP 协议面向连接, UDP 协议面向非连接
n TCP 协议传输速度慢, UDP 协议传输速度快
n TCP 协议保证数据顺序, UDP 协议不保证
n TCP 协议保证数据正确性, UDP 协议可能丢包
n TCP 协议对系统资源要求多, UDP 协议要求少


Socket 通信与 Http 通信的区别

HTTP 是轿车,提供了封装或者显示数据的具体形式; Socket 是发动机,提供了网络通 信的能力。
n
n 我们在传输数据时,可以只使用(传输层) TCP/IP 协议,但是那样的话,如果没有 应用层,便无法识别 数据内容,如果想要使传输的数据有意义,则必须使用到应用 层协议, 应用层协议 有很多,比如 HTTP FTP TELNET 等,也可以自己定义应用 层协议。 WEB 使用 HTTP 协议作应用层协议,以封装 HTTP 文本信息,然后使用 TCP/IP 做传输层协议将它发到网络上。
n Socket 是对 TCP/IP 协议的封装, Socket 本身并不是协议,而是一个 调用接口 API ),通过 Socket ,我们才能使用 TCP/IP 协议。实际上, Socket TCP/IP 协议 没有必然的联系。 Socket 编程接口在设计的时候,就希望也能适 应其他的网络协 议。所以说, Socket 的出现只是使得程序员更方便地使用 TCP/IP 协议栈而已,是对 TCP/IP 协议的抽象,从而形成了我们知道的一些最基本的函数接口。


如何建立 socket 连接

n 建立 Socket 连接至少需要一对套接字,其中一个运行于客户端,称为 ClientSocket ,另一个运行于服务器端,称为 ServerSocket 。套接字之间的连接过 程分为三个步骤:服务器监听,客户端请求,连接确认。
n 服务器监听 :服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的 状态,实时监控网络状态,等待客户端的连接请求。
n 客户端请求 :指客户端的套接字提出连接请求,要连接的目标是服务器端的套接 字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器 端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
n 连接确认 :当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就 响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户 端,一旦客户端确认了此描述,双方就正式建立连接。而服务器端套接字继续处于 监听状态,继续接收其他客户端套接字的连接请求。
n 这样就实现了服务器和客户端的通信,既可以客户端随时向服务器发送消息,也可 以服务器随时向客户端发送消息。

你可能感兴趣的:(socket,tcp,服务器,网络协议,手机,网游)