我们还是从计算机的网络层说起,主要是分为7个层分别是物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。
数据之间的交互主要在传输层这一块。通常用到的底层协议有TCP和UDP这两种协议。通过中间层SOCKET协议,进行包装,再往上就是我们经常用到的>
>
上面这个就是我们网站的>
同时我们的实时聊天软件,比如今日头条的聊天软件就是通过TCP,SOCKET来进行通信的,这种是面向连接的长链接方式,双向通信。响应指定封包协议和解包协议,通过socket的处理,去监听两端的端口,分别获取各自的数据,和发送各自的数据。实现双向通信。具体过程如下:
>客户端步骤
1创建套接字
2向服务器发送连接请求(connect)
3通信(send/recv)
4关闭套接字
>服务器端步骤
1创建用于监听的套接字(socket)
2将套接字绑定到本地地址和端口上(bind)
3将套接字设为监听模式(listen)
4等待客户请求(accept),此处要不断的调用accept
5通信(send/receive),完成后返回4
6关闭套接字(closesocket)
谢谢阅读,欢迎关注。
最简单的模式就是,客户端接收键盘,鼠标等的消息,然后发送个服务器。
服务器收到这些消息后,发送给其他(指定或者所有的)客户端
就像你在WEB聊天室聊天一样。首先键盘输入了一大堆文字。然后按下“递交”按钮,于是客户端收集你填写的那些文字内容,然后发送给服务器。(也许里面有些色情暴力的字眼)
服务器在接收的这些消息后,发送给其他用户。(服务器可能和谐掉那些色情暴力的字眼,变成了XXOO)
网络游戏的客户端和服务器也是一样的道理
客户端纪录所有的消息指令,一般来说,如果该消息指令可能影响到其他人的,或者需要被其他人看到,这个消息就会需要被发送到服务器。
服务器处理这些消息进行处理,发送给其他相关的客户端。
直白点来说,服务器端与客户端分别处理哪些事情?你是老板,你说了算。要看什么数据,比如文件存储服务器,可以买2块万兆光纤网卡,直接复制,或者用软件复制,速度很快就搞定
如果带数据库,不建议直接复制,容易出问题,
数据库通过使用数据库的软件备份,比如用友,金蝶的数据库,然后复制备份数据到新服务器,原则上,以数据,从小到大开始
如果数据库实在太大,可以给使用该数据库软件的公司联系,看能不能做数据库和软件分离,单独的一台服务器只做数据库,只存放数据库数据,不负载其他软件,或者做类似分布式存储,多台服务器存储数据库数据,不集中在某一台服务器
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)