客户端服务器

Redis 集群(11)

混江龙づ霸主 提交于 2020-03-15 01:43:59
为什么需要集群? 1、性能 Redis本身的QPS已经很高了,但是如果在一些并发量非常高的情况下,性能还是会受到影响。这个时候我们希望有更多的Redis服务来完成工作。 2、扩展 第二个是出于存储的考虑。因为Redis所有的数据都放在内存中,如果数据量大,很容易受到硬件的限制。升级硬件收效和成本比太低,所以我们需要有一种横向扩展的方法。 3、可用性 第三个是可用性和安全的问题。如果只有一个Redis服务,一旦服务宕机,那么所有的客户端都无法访问,会对业务造成很大的影响。另一个,如果硬件发生故障,而单机的数据无法恢复的话,带来的影响也是灾难性的。 可用性、数据安全、性能都可以通过搭建多个Reids服务实现。其中有一个是主节点(master),可以有多个从节点(slave)。主从之间通过数据同步,存储完全相同的数据。如果主节点发生故障,则把某个从节点改成主节点,访问新的主节点。 Redis主从复制(replication) 主从复制配置 例如一主多从,100是主节点,在每个slave节点的redis.conf配置文件增加一行 slaveof 192.168.1.100 6379 //在主从切换的时候,这个配置会被重写成: #GeneratedbyCONFIGREWRITE replicaof 192.168.1.100 6379 或者在启动服务时通过参数指定master节点: .

C# TCP多线程服务器示例

偶尔善良 提交于 2020-03-14 21:54:49
前言 之前一直很少接触多线程这块。这次项目中刚好用到了网络编程TCP这块,做一个服务端,需要使用到多线程,所以记录下过程。希望可以帮到自己的同时能给别人带来一点点收获~ 关于TCP的介绍就不多讲,神马经典的三次握手、四次握手,可以参考下面几篇博客学习了解: TCP三次握手扫盲 效果预览 客户端是一个门禁设备,主要是向服务端发送实时数据(200ms)。服务端解析出进出人数并打印显示。 实现步骤 因为主要是在服务器上监听各设备的连接请求以及回应并打印出入人数,所以界面我设计成这样: 可以在窗体事件中绑定本地IP,代码如下:        //获取本地的IP地址 string AddressIP = string.Empty; foreach (IPAddress _IPAddress in Dns.GetHostEntry(Dns.GetHostName()).AddressList) { if (_IPAddress.AddressFamily.ToString() == "InterNetwork") { AddressIP = _IPAddress.ToString(); } } //给IP控件赋值 txtIp.Text = AddressIP; 首先我们需要定义几个全局变量 Thread threadWatch = null; // 负责监听客户端连接请求的 线程;

FTP-Linux中ftp服务器搭建

北战南征 提交于 2020-03-14 11:04:12
一、FTP工作原理 (1)FTP使用端口 [root@localhost ~]# cat /etc/services | grep ftp ftp-data 20/tcp #数据链路:端口20 ftp 21/tcp #控制链路:端口21 (2)FTP连接方式 支持两种连接模式:主动模式(Port)和被动模式(Pasv),这两种模式都是针对数据链路进行的,与控制链路无关。 主动模式工作过程: 1.客户端从自己的一个任意端口(N > 1024)和FTP服务器的21端口建立控制链路 2.然后客户端发出Port指令告诉服务器连接自己的N+1端口来建立一条数据通道 3.当FTP服务器接到这一指令时,会使用20端口连接用户在Port指令中指定的端口号N+1来发送数据 被动模式工作过程: 1.客户端从自己的一个任意端口(N > 1024)和FTP服务器的21端口建立控制链路 2.然后客户端发送Pasv指令,告诉服务器自己要连接服务器的某一个端口 3.如果服务器上的这个端口是空闲可用的,那么服务器会返回确认信息,之后数据传输通道被建立;但如果服务器上的这个端口被另一个资源所使用,那么服务器返回不确认的信息,那么这是客户端会再次发送Pasv命令。 注意: 在FTP客户连接服务器的整个过程中,控制信道是一直保持连接的,而数据传输通道是临时建立的; 主动模式建立数据传输通道是由服务器端发起的

SSL ***技术解析

99封情书 提交于 2020-03-13 19:25:44
SSL ***背景  企业出差员工,需要在外地远程办公,并期望 能够通过Internet随时随地的远程访问企业内部资源 。同时,企业为了 保证内网资源的安全性 ,希望能对移动办公用户进行多种形式的身份认证, 并对移动办公用户可访问内网资源的权限做精细化控制  IPSec、L2TP等先期出现的***技术虽然可以支持远程接入这个应用场景,但这些***技术的组网不灵活;移动办公用户 需要安装指定的客户端软件(SecoClient) ,导致网络部署和维护都比较麻烦; 无法对移动办公用户的访问权限做精细化控制  SSL ***作为新型的 轻量级 远程接入方案,可以有效地解决上述问题,保证移动办公用户能够在企业外部安全、高效的访问企业内部的网络资源  FW作为企业出口网关连接至Internet,并向移动办公用户(即出差员工)提供SSL ***接入服务。移动办公用户使用终端(如便携机、PAD或智能手机)与FW建立SSL ***隧道以后,就能通过SSL ***隧道远程访问企业内网的Web服务器、文件服务器、邮件服务器等资源 传统***存在的问题  IPSec ***可安全 、稳定地在两个网络间传输数据,并保证数据的完整无缺,适用于处理总公司与分公司之间的信息往来及其他 Site-to-Site 应用场景 由于IPSec是基于网络层的协议,很难穿越NAT和防火墙

安卓平台下的即时通讯 .

。_饼干妹妹 提交于 2020-03-13 17:29:53
摘要: 论文简单介绍Android 平台的特性,主要阐述了基于Android 平台简易即时通讯(IM)的 作用和功能以及实现方法,复杂的通讯如引入视频音频等可以考虑AnyChat SDK。 关键词: Android 平台;即时通讯 (本文中图表点击附件即可见) 1 Android 平台简介 Android 是Google 公司于2007年11月5日推出的手机操作系统 ,经过2年多的发展,Android平台在智能移动领域占有不小的份额,由Google为首的40 多家移动通信领域的领军企业组成开放手机联盟(OHA)。Google 与运营商、设备制造商、开发商和其他第三方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。正因如此,Android 正在被越来越多的开发者和使用者所接受。近日,Google 发言人Anthony House称, 截止到2010 年4 月15 日,Android Market 已经有3.8 万多个应用程序。 2 Android 平台特性与即时通讯的研究   Android 平台框架共由5 部分组成。底层核心是基于 Linux 2.6内核 开发的独立操作系统,该层用来提供系统的底层服务,包括安全机制、内存管理、进程管理、网络堆栈及一系列的驱动模块。中间是Android 执行环境,包括系统运行库

FTP 搭建

走远了吗. 提交于 2020-03-13 04:51:35
FTP 搭建 FTP 是 File Transfer Protocol(文件传输协议)的英文简称,它工作在 0SI 模型的第七层,TCP 模型的第四屋上,即应用层。 一、FTP 简介 FTP 会话时包含了两个通道,一个叫控制通道,端口号21;一个数据通道,端口号 20。 21 端口用于连接,20 端口用于传输数据。进行 FTP 文件传输中,客户端首先连接到 FTP 服务器的 21 端口,进行用户的认证,认证成功后,要传输文件时,服务器会开一个端口为 20 来进行传输数据文件。也就是说,端口 20 才是真正传输所用到的端口,端口 21 只用于 FTP 的登陆认证。 1.1 FTP 工作模式 数据传输有 2 种方式:主动模式和被动模式。两种模式的区别是被动模式是客户端打开一个端口去连接服务端,这就绕过了客户端的防火墙限制。 (1) 主动模式的工作原理(PORT模式) 客户端对服务器发起请求,连接的是服务器的 21 号端口,客户端的端口号 N 是大于 1024 的随机端口。 服务器的 21 号端口给予客户端响应数据流。 服务器打开 20 端号口去连接客户端的 N+1 的端口(注意客户端 N+1 要打开防火墙限制)。 客户端给予响应,数据开始传输。 (2) 被动模式的工作原理(PASY模式) 客户端对服务发起的请求连接是服务器的 21 号口,客户端的端口号 N 是大于 1024 的随机端口

计算机网络MAC地址

梦想与她 提交于 2020-03-11 13:21:51
简介   谈起MAC地址,不得不说一下IP地址。IP地址工作在 TCP/IP 参考模型的第三层网络层。IP地址专注于网络层,将数据包从一个网络转发到另外一个网络;而MAC地址专注于数据链路层,将一个数据帧从一个节点传送到相同链路的另一个节点。定位网络中的计算机的位置,最常用的有 域名地址 、 Ip地址 、 MAC地址 三种方式,它们分别对应于OSI模型中的 应用层 、 网络层 、 数据链接层 。通常IP地址是不断变化的,而MAC地址是计算机的物理网卡唯一对应的地址,好比每个人都有唯一对应的身份证号码一样具有唯一性。 MAC地址的定义   MAC(Media Access Control,介质访问控制)地址,也叫硬件地址,长度是48比特(6字节),由16进制的数字组成,分为前24位和后24位:    前24位叫做组织唯一标志符 (Organizationally Unique Identifier,即OUI),是由IEEE的注册管理机构给不同厂家分配的代码,区分了不同的厂家。 后24位是由厂家自己分配的 ,称为扩展标识符。同一个厂家生产的网卡中MAC地址后24位是不同的。    MAC地址对应于OSI参考模型的第二层数据链路层,工作在数据链路层的交换机维护着计算机MAC地址和自身端口的数据库,交换机根据收到的数据帧中的“目的MAC地址”字段来转发数据帧。 MAC地址的作用  

Web网站数据”实时”更新设计

时光怂恿深爱的人放手 提交于 2020-03-11 11:57:41
  请注意这个实时打上了双引号,没有绝对的实时,只是时间的颗粒不一样罢了(1ms,1s,1m)。 服务器数据有更新可以快速通知客户端。Web 基于取得模式,而服务器建立大量的和客户端连接来提供数据实时更新反而拉低服务器的使用效能。 请下载DEMO 点击下载 一、现有方案归纳有两类。 服务器真实推送 - 基于浏览器外部控件数据实时更新。      IE ActiveX(flash)控件,还有其他浏览器比如Firefox插件。这种基于浏览器外部插件的,由于移植性差。主要要在一些浏览器安全上得到应用。比如在线支付(支付宝),自动登陆(QQ)。和一些内网控制(电网内部控制管理)。 Flash 其实也是浏览器的一种插件后台通过建立Socket 来与客户端实时数据更新。这点比较有优势的是Flash 插件几乎每台机器上都有安装,移植性没有问题。但同样对防火墙穿透能力差,而且需要消耗服务器大量的。 基于XMLHttpRequest 定时取的解决方案.     Ajax 通过定时去询问服务器是否有数据更新,似乎是一个通用的解决方案,如:1元xx 类的网站,因为抢购模式需要实现更新商品的剩余份数。比如要获取服务器当前参与人数,获取最新购买人数,发送的私信,好友消息,每一种类型数据都设定一个时间如:1秒到数据库取一次数据。而大多数请求的链接是无效的,而且过多的请求会导致浏览器无响应。 二

TCP/IP Socket网络编程

半城伤御伤魂 提交于 2020-03-11 10:05:35
典型的Client/Server程序流程图 面向流的套接字程序通常遵循规定的顺序。有关典型客户端和服务器的逻辑流程图,请参见下图。在研究此图时,请记住一个事实,即 并发服务器通常在客户端启动之前启动 ,并在步骤3等待客户端请求连接。然后,在关闭客户端连接后,它将继续等待其他客户端请求。 步骤1:服务器和客户端使用socket()调用创建一个流socket。 步骤2 :(对于客户端是可选的)使用bind()调用将套接字s绑定到本地地址。 步骤3:服务器使用listen()调用向TCP / IP机器发出接受连接意愿的警报。 步骤4:客户端使用connect()调用将套接字s连接到外部主机。 步骤5:服务器接受连接,并通过accept()阻塞,直到在此套接字上建立新连接例如ns或出现错误。 步骤6和7:服务器使用send()和recv()调用在套接字ns上读取和写入数据,客户端在套接字s上读取和写入数据,直到所有数据都已交换。 步骤8:服务器使用close()调用关闭套接字ns。客户端关闭套接字s,并通过close()调用结束TCP / IP会话。转到步骤5。 Basic socket calls Socket: 获取一个要读取或写入的套接字。 Bind: 将套接字与端口号关联。 Listen: 告诉TCP⁄IP该进程正在侦听此套接字上的连接。 Select: 等待套接字上的活动。

cookie和session

久未见 提交于 2020-03-11 03:58:30
引言: 在计算机通信网络中,网络协议是必不可少。其中超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。 然而HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪用户登录网站后的一系列动作,这一系列动作我们称之为会话,比如浏览商品添加到购物车并购买。 会话跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。在这篇博客里,我们来看看这两个技术的区别。 Cookie: Cookie实际上是一小段的文本信息。在客户端请求服务器时,如果服务器需要记录该用户状态,如用户信息等,就使用response对象向客户端浏览器发送一个Cookie。客户端会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。工作原理如下: 1. 客户端第一次向服务器发起请求 2. 服务器准备一个cookie,将需缓存的内容设置到cookie中 3. 服务器将请求响应结果与cookie一起回馈给客户端 4. 客户端处理请求的响应与读取cookie 5. 客户端再次向服务器发送请求 6. 服务器检查传来的cookie,辨认状态