客户端与服务器数据交互方式(客户端与服务端之间)

网络游戏客户端和服务器之间数据怎么交互的

最简单的模式就是,

客户端接收键盘,鼠标等的消息,然后发送个服务器。

服务器收到这些消息后,发送给其他(指定或者所有的)客户端

就像你在WEB聊天室聊天一样。首先键盘输入了一大堆文字。然后按下“递交”按钮,于是客户端收集你填写的那些文字内容,然后发送给服务器。(也许里面有些色情暴力的字眼)

服务器在接收的这些消息后,发送给其他用户。(服务器可能和谐掉那些色情暴力的字眼,变成了XXOO)

网络游戏的客户端和服务器也是一样的道理

客户端纪录所有的消息指令,一般来说,如果该消息指令可能影响到其他人的,或者需要被其他人看到,这个消息就会需要被发送到服务器。

服务器处理这些消息进行处理,发送给其他相关的客户端。

直白点来说,服务器端与客户端分别处理哪些事情?你是老板,你说了算。

文件传送协议是什么 客户端与FTP服务器交互步骤介绍【详解】

文件传送协议,文件传送协议是什么意思

FTP是一种Internet文件传输服务,它在Internet和TCP/IP网络中运作。FTP基本上是一种客户/服务器协议,在此协议中运行FTP服务器的系统接受来自运行FTP客户端的系统的命令。它的主要目的是允许文件从一个主机传送到另一个主机,而其他的应用系统像网络文件系统(Network File System,NFS)是用来存取远程文件中的数据的。FTP在各种不同的系统中运作并允许一个系统中的用户与其他类型的系统进行交互,只要其网络协议是TCP/IP,而不用在意其操作系统。

FTP客户端运行一种交互式的、命令驱动的、基于文本的接口。尽管FTP有很多严格的规定,但它确实支持许多不同的文件类型和文件组织形式。终端用户调用一个前端应用连到远程系统,在FTP命令的提示下,就可以进行不同的操作。从客户到服务器的命令和从服务器到客户的应答都是以7位ASCII码格式经由控制连接传送的,因此FTP命令是直观可读的。用于分割相继的命令或应答的是一个回车符和一个换行符。每个命令由4个大写的ASCB字符构成,有些命令带有可选的参数。

下面描述了客户端与FTP服务器进行交互的基本步骤:

1.启动FTP命令接口。

2.键入?以获取命令帮助。

3.使用命令open以指定要访问的FTP服务器的IP地址或域名。

4.登录(在公共站点,键入anonymous作为登录名称)。

5.使用dir或Is命令以列出FTP服务器中的文件。

6.使用cd命令切换目录。

7.使用get命令下载文件或put命令上载文件。

8.键入close以关闭当前会话(键入open可访问其他的服务器)。

9.键入quit 以结束程序。

在大多数情况下,这些步骤代表您同FTP服务器进行交互时将要做的大部分事情。就像刚才提到的那样,您可以键入?以查看命令的完整列表,您会发现很多命令。许多FTP作站点使用最小限度的文件访问安全性,因为他们是向公众提供文件。这些站点被称为匿名FTP站点。如第4步中所述,您可以简单地键入anonymous作为您的登录名称,然后键入电子邮件地址(或其他任何东西)作为您的密码。

FTP可以在许多不同的文件系统间工作,所以用户必须清楚FTP服务器上的文件类型可能与他们的系统不兼容。通常所有的人都能够查看文本(txt)文件,而且新的通用文件类型如Adobe的PDF(页面描述语言)也使得这个问题不再是一个很大的问题。还有一件事是:在下载图形文件或可执行文件之前要键入binary;在下载文本文件之前要键入ascii。

实际上,FTP客户端也处理很多命令。它首先翻译用户命令,然后使用FTP协议向FTP服务器发送请求。

命令和数据是通过两个不同的连接发送的。当您启动FTP并连接到FTP服务器时,某个连接针对此服务器打开,并在您键入 close命令之前它将一直保持打开状态(持续的)。当您请求文件传输时,文件的数据在其他连接中被传输,在文件传输完成时,此连接将挂断。因此,如果要传输多个文件,典型的FTP会话可能同时有若干个公开的连接。对单个控制和数据使用这种方案意味着在传输数据时可使用控制连接。

多年来,多个RFC中都有对FTP的定义。原始的规范要追溯到1971年。有关FTP的最新的文档是RFC959,〞File Transfer Protocol″ (October 1985)。一个非常有用的文档是RFC1635,〞How to Use Anonymous FTP″(Mayl994)。还有一些相关的RFC,包括RFC783,″The TFTP Protocol″(June 1981)。它描述了“一般文件传输协议”,该协议是FTP的精简版,在UDP而不是在TCP中运行。

IETF工作组,也称为“FTP的扩展(ftpext)”,发展了FTP。

iOS客户端与服务器的数据交互总结

前言:

本文总结了iOS客户端与服务器进行交互时,采用 RESTful API + Json 的交互方式,针对不 同的数据形式以及不同的解析方法,如有不足之处,欢迎指正。

先了解一下相关的基本概念。

HTTP通信:

即使用HTTP协议进行通信,工作原理是客户端向服务器端发送一条HTTP请求,服务器收到之后先 解析客户端的请求,之后会返回数据给客户端,然后客户端再对这些数据进行解析和处理。HTTP 连接采取的是“请求—响应”方式,即在请求时建立连接通道,当客户端像服务器端发送请求时,服 务器端才能向客户端发送数据。

Socket通信:Socket又称套接字,在程序内部提供了与外界通信的端口,即端口通信。通过建立 socket连接,可为通信双方的数据传输传提供通道。Socket的主要特点有数据丢失率低,使用简 单且易于移植。Socket类似于peer to peer的连接,一方可随时向另一方喊话。

小结:HTTP和Socket都是基于TCP协议的。使用两种通信方式的情况是: 使用HTTP的情况:双方不需要时刻保持连接在线,比如客户端资源的获取、文件上传等。

使用UDP的情况:大部分即时通讯应用(QQ、微信)、聊天室、苹果APNs等。

主要有四种:

数据流

1.从web服务器响应到手机终端的数据 一般打包在一个字节数组中,这个字节数据中包含了不同的 数据类型,客端端采取Java数据流和过虑流的方式从字节数组中取出各种类型的数据。

这种交互方式我在学习iOS之初用过,实际项目中并没有发现哪家公司在用。这种方式了扩展 了iOS平台在访问Web服务器进行交互时的解析数据能力,仅供研究学习。

2.XML Webservice的标准数据格式。 Protocol Buffers

3.Protocol Buffers 是一种轻便高效的结构化数据存储格式,支持跨平台。它很适合做数据存储或 RPC 数据交换格式。比 JSON 最大的优点就是传输的时候数据体积可以压缩很小,传输效率比较 高。本人在这个在项目中没有用到过。

4.JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。毫无疑问,大家最常用。

本文重点会介绍关于Json数据格式 的常用格式。

Json数据格式 的采用,根据业务情况,一般是团队中的共识。技术的迭代更新,到后期基本都会考虑多 个平台的通用性、可移植性和可读性。比如 我们开发团队,有移动端开发(Android、iOS)、前端开发 (H5开发)和后台开发(golang开发)。

关于服务器的开发规范,我们先来了解一下。

服务器开发规范 我们采用的是 RESTful , RESTful 是目前最流流行的 API设计规范,用于web数据接

口的设计。

• 面面向资源(URI),具有解释性;

• 行为(GET / POST / PUT / PATCH / DELETE)与资源(URI)分离,更更加轻量量;

• 数据描述简单,使用用JSON、XML、Protocol Buffers即可全覆盖, 主要使用用JSON;

它的核心原则是定义用少量方法就能操作的命名资源。资源和方法可视为API的 和动词。

• GET :读取(Read)

• POST :新建(Create)

• PUT :更新(Update),通常是全部更更新

• PATCH :更新(Update),通常是部分更更新

• DELETE :删除(Delete)

项目搭建之始,客户端和服务器一般用 Get 和Post的方式来交互,随着业务的演进和技术的规范迭代, 到后期我们都得按规范来。于是 我们采用了上述几种方式来设计服务器接口,相应地,移动端的请求方 式也得与之对应。

至此,不在赘述 RESTful API 的设计规范,可自行百度了解更多。

接口的数据一般都采用JSON格式进行传输,不过,需要注意的是,JSON的值只有六种数据类型:

•Number:整数或浮点数

•String:字符串

•Boolean:true 或 false

•Array:数组包含在方括号 [] 中

•Object:对象包含在大括号 {} 中

•Null:空类型

传输的数据类型不能超过这六种数据类型,不能用Date数据类型,不同的解析库解析方式不同,可能会 导致异常,如果遇到日期的数据,最好的方式就是使用毫秒数表示日期。

本文总结了iOS与服务器的交互方式和数据类型,并总结了在实际项目的简单运用。数据格式的运

用场景远不止上面提到的几种场景,后期会持续完善,如有不足之处,欢迎指出。

数据交互方式

web数据交互方式,web数据交互,简单的讲,是client与server端的数据交互,通过http协议交互的。

【扩展】

对于小型个人系统,数据量不是很大的都是通过webservice,webservice读取数据库,然后返回结果;对于公司企业的大型数据系统等采用预先将数据库中的每一条信息静态化成xml,客户直接下载xml然后本地解析的数据交互方法。

web数据交互,从server的角度讲:主要有pull,push两个,一个是拉,另外一个是推。

1)pull 是拉,客户端向服务器端主动的拉取数据,采用的技术是ajax 和Xss(跨站脚本)

2)push 是服务器向客户端主动的推动数据,第一种方式是长连接,客户端与服务器之间一直保持着连接,如果有数据的更新,服务器向客户端推送数据,客户端接受服务器端的数据,可以理解为长轮询,客户端与服务器端必须一直是连接着的状态。另外还有一种是伪长链接的。有2种实现方式,一种是基于ajax的,它与传统的ajax的方式不同在于,服务器端会阻塞客户端的请求直到有数据传递或者超时才返回。客户端 JavaScript 响应处理函数会在处理完服务器返回的信息后,再次发出请求,重新建立连接。 当客户端处理接收的数据、重新建立连接时,服务器端可能有新的数据到达;这些信息会被服务器端保存直到客户端重新建立连接,客户端会一次把当前服务器端所有的信息取回。

简单游戏 客户端-服务器交互流程参考

打开背包向服务器申请数据服务器下发被背包内的物品 ID 、Count(结构体形式以List发送到客户端)

客户端根据接受的ID、Count去本地配置表中配置物品然后显示在背包中

(从服务器接受后在本地查找ID对应的图片 属性 类型后加入Count显示在背包中)

点击物品,将物品ID发送到服务器,服务器扣除物品数量,并将使用物品后所需的效果(如 增加经验、属性等),增加完毕之后将数值返回给客户端,客户端更新背包内容并将对应属性同步刷新显示(如果物品用完 将物品从储存的List中将物品进行删除操作)

服务器向背包发送ID、Count,在本地配置表中生成后 刷新显示到背包中。

客户端发送 角色ID 到客户端,客户端在库中搜索角色

         (1).玩家2同意添加好友,玩家2客户端向服务器发送消息,服务器将两 人绑定为好友关系,将数据(玩家ID等)下发到双方客户端,并刷新 显示双方客户端好友列表。

         (2).玩家2拒绝添加好友,玩家2客户端向服务器发送消息,服务器向玩 家1发送消息,玩家1客户端显示被拒绝消息提醒。

玩家1向服务器发送消息,服务器取消双方好友关系的绑定,并将数据发回双方客户 端,客户端更新显示好友框。

通常以动态生成和隐藏方式显示,只显示上下5个范围内容。。。。。

客户端向服务器发送消息,服务器判断当前时间,并判断当天是否签到过,如未签到 过,向客户端发送信息,客户端显示签到成功,并修改签到按钮为已经签到,如需领 取签到奖励,参考背包获得物品。

服务器记录账号签到天数,如需要补签将补签日期ID发送到服务器,服务器判定当 天是否签到,未签到则执行签到操作,获取奖励物品。

服务器向客户端发送消息(邮件名、邮件内容、是否有附件、附件ID、Count),客 户端接受信息后显示有新邮件的提示,在本地配置表中填入接受的消息,并显示在邮 件中。客户端点击领取附件(向服务器发送消息,已经领取),并且做背包操作,参 考背包系统获取物品。

玩家1编辑邮件,点击发送按钮,将邮件(名称、内容、是否有附件、附件、收件 人)发送到服务器,服务器在库中索搜收件人,然后参考系统附件邮件操作。

未经允许不得转载:便宜VPS网 » 客户端与服务器数据交互方式(客户端与服务端之间)