客户端服务器

多个客户端如何同时连接到服务器上的一个端口,比如80?(译)

廉价感情. 提交于 2020-01-30 07:15:27
多个客户端如何同时连接到服务器上的一个端口,比如80?(译) 原文: How do multiple clients connect simultaneously to one port, say 80, on a server? [duplicate] 平时我们使用ServerSocket指定了某个端口(例如8080),然后多个客户端连接上socket之后就都用这个8080端口和服务器端通讯。或者http服务器使用80端口也是和多个浏览器进行连接通讯。为什么可以这样呢?操作系统的进程在同个端口的多个连接是如何进行分辨的? 译文: 我们这里讲Socket连接: 1. 端口只是一个数字辨识,不是真正的物理端口; 2. 一个Socket连接的主键(即不同socket之间的区分)是由一个五元组{SRC-IP, SRC-PORT, DEST-IP, DEST-PORT, PROTOCOL}组成,即{源地址,源端口,目标地址,目标端口,协议}组成,那些说四元组不包含协议的说法是错误的。 3. 一个进程可以拥有多个socket连接。 例子一、两个客户端连接在同个服务器的同个端口80,即有两个socket连接: - socket1 {SRC-A, 100, DEST-X,80, TCP} - socket2{SRC-B, 100, DEST-X,80, TCP} 主机A和主机B的地址不同

Android Debug Bridge 服务详解

我们两清 提交于 2020-01-30 01:46:53
本文尝试列举客户端能够发送给ADB服务器的所有请求。关于adb客户端、adb服务器、adbd守护进程、adb服务的概念,以及这些组件如何相互配合完成ADB工作的细节,请参考之前发的文章《Android Debug Bridge 技术实现》。 ============================== 主机服务 ============================== host:version 请求ADB服务器的内部版本号。作为一个特殊的例外,服务器将用4字节的十六进制字符串回应,返回服务器内部版本号,回应中没有“OKAY”和“FAIL”。 host:kill 请求ADB服务器立即退出。用于ADB客户端检测到在升级之后有废弃的ADB服务器仍在运行的情况。 host:devices 请求返回可用的Android设备及其状态的列表。在“OKAY”之后是4个字节的长度定义,然后是指定长度的表明当前设备状况的字符串,返回之后连接关闭。 host:track-devices “host:devices”的一个变种,它不关闭连接;相反,每次添加或移除设备或者指定设备的状态发生变化,一个新的设备列表描述被发送。这就使得像DDMS这样的工具能够实时跟踪连接设备的状态,而不用重复轮训服务器。 host:emulator:<port> 这是一个特殊的请求,当启动一个新的模拟器时

通信网笔记

a 夏天 提交于 2020-01-30 00:56:53
应用与分层的体系结构 协议、服务和分层示例 协议的概念:协议是控制两个或多个通信体之间进行交互的一组规则;协议的目的是 提供多种类型的通信服务 。 计算机中的服务器进程监听来自端口的服务请求。**端口就是一个地址,用来表明哪一个进程将要接收发往特定机器的消息。**应用广泛的应用程序都有其服务器指定的公认端口号,以便其他计算机的客户端进程能够容易地按要求发送请求,服务器对这些请求做出响应。 通过万维网进行浏览 通过万维网(WWW)框架我们可以访问已经连接到Internet上的计算机中的文件,这些文件以**超文本标记语言(HTML)**编写而成,可以包括文本、图表和其他媒体格式,并通过文件中的链接互相联系起来。 通过浏览器程序访问Web页,浏览其中所显示的文档,并可以单击链接来访问其他文档。每一个链接都为浏览器提供了 统一资源定位符(URL),URL可以指定存储文档的机器名和包含请求文档的文件名 。 超文本传输协议(HTTP)详细规定了 客户端和服务器端 交互与文件读取有关的规则,这些规则还制定了表达请求和响应时的措辞方式。协议假定客户端和服务器端能够直接交换消息。通常情况下,客户端软件需要在HTTP请求之前建立起双向连接。 从Web上获取文档: 1、用户单机链接,以表明需要获取哪份文档,浏览器必须确定包含此份文档的计算机的网络地址。为此,浏览器要向本地域名服务器发送一个查询。 2

Cookie&Session会话技术

我的梦境 提交于 2020-01-30 00:19:35
Cookie&Session会话技术 一.会话技术 1) 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话。会话技术就是记录这次会话中客户端的状态与数据的。 2)会话技术分为Cookie和Session: Cookie:数据存储在客户端本地,减少服务器端的存储的压力,安全性不好,客户端可以清除cookie; Session:将数据存储到服务器端,安全性相对好,增加服务器的压力; 二、Cookie技术 1.服务器端向客户端发送一个Cookie 1)创建Cookie: Cookie cookie = new Cookie(String cookieName,String cookieValue); 注意:Cookie中不能存储中文 。 2)设置Cookie在客户端的持久化时间: cookie.setMaxAge(int seconds); ---时间秒 注意:如果不设置持久化时间,cookie会存储在浏览器的内存中,浏览器关闭 cookie信息销毁(会话级别的cookie),如果设置持久化时间,cookie信息会被持久化到浏览器的磁盘文件里 3)设置Cookie的携带路径: cookie.setPath(String path); 注意:如果不设置携带路径,那么该cookie信息会在访问产生该cookie的 web资源所在的路径都携带cookie信息 4

计算机网络基础知识简答

孤人 提交于 2020-01-29 22:30:13
Http和Https的区别 Http协议(超文本传输协议)运行在TCP之上,明文传输,无状态,客户端与服务器端都无法验证对方的身份;Https是由SSL协议和Http协议构建的可进行加密传输,身份认证的网络协议。二者之间存在如下不同: 端口不同:Http与Http使用不同的连接方式,用的端口也不一样,前者是80,后者是443; 资源消耗:和HTTP通信相比,Https通信会由于加减密处理消耗更多的CPU和内存资源; 开销:Https通信需要证书,而证书一般需要向认证机构购买; Https的加密机制是一种共享密钥加密和公开密钥加密并用的混合加密机制。 对称加密与非对称加密 (我要和你建立链接,你真的要和我建立链接么,我真的要和你建立链接,成功) 对称密钥加密是指加密和解密使用同一个密钥的方式,这种方式存在的最大问题就是密钥发送问题,即如何安全地将密钥发给对方;而非对称加密是指使用一对非对称密钥,即公钥和私钥,公钥可以随意发布,但私钥只有自己知道。发送密文的一方使用对方的公钥进行加密处理,对方接收到加密信息后,使用自己的私钥进行解密。 由于非对称加密的方式不需要发送用来解密的私钥,所以可以保证安全性;但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。 三次握手过程(我要和你建立链接,你真的要和我建立链接么

ZooKeeper概念

邮差的信 提交于 2020-01-29 12:42:26
这可能是把ZooKeeper概念讲的最清楚的一篇文章 相信大家对 ZooKeeper 应该不算陌生,但是你真的了解 ZooKeeper 是什么吗?如果别人/面试官让你讲讲 ZooKeeper 是什么,你能回答到哪个地步呢? 作者:SnailClimb来源: 51CTO技术栈 |2018-09-12 09:34 收藏 分享 我本人曾经使用过 ZooKeeper 作为 Dubbo 的注册中心,另外在搭建 Solr 集群的时候,我使用到了 ZooKeeper 作为 Solr 集群的管理工具。 前几天,总结项目经验的时候,我突然问自己 ZooKeeper 到底是个什么东西? 想了半天,脑海中只是简单的能浮现出几句话: Zookeeper 可以被用作注册中心。 Zookeeper 是 Hadoop 生态系统的一员。 构建 Zookeeper 集群的时候,使用的服务器最好是奇数台。 可见,我对于 Zookeeper 的理解仅仅是停留在了表面。所以,通过本文,希望带大家稍微详细的了解一下 ZooKeeper 。 如果没有学过 ZooKeeper,那么本文将会是你进入 ZooKeeper 大门的垫脚砖;如果你已经接触过 ZooKeeper ,那么本文将带你回顾一下 ZooKeeper 的一些基础概念。 最后,本文只涉及 ZooKeeper 的一些概念,并不涉及 ZooKeeper 的使用以及

在 Linux 下搭建 Git 服务器

狂风中的少年 提交于 2020-01-29 09:03:54
转载: https://www.cnblogs.com/dee0912/p/5815267.html 目录 ① 安装 Git ② 服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码 ③ 服务器端创建 Git 仓库 ④ 客户端 clone 远程仓库 ⑤ 客户端创建 SSH 公钥和私钥 ⑥ 服务器端 Git 打开 RSA 认证 ⑦ 将客户端公钥导入服务器端 /home/git/.ssh/authorized_keys 文件 ⑧ 客户端再次 clone 远程仓库 ⑨ 禁止 git 用户 ssh 登录服务器 正文 环境: 服务器 CentOS6.6 + git(version 1.7.1)客户端 Windows10 + git(version 2.8.4.windows.1) 回到顶部 ① 安装 Git Linux 做为服务器端系统,Windows 作为客户端系统,分别安装 Git 服务器端: #yum install -y git 安装完后,查看 Git 版本 [root@localhost ~]# git --version git version 1.7.1 客户端: 下载 Git for Windows ,地址: https://git-for-windows.github.io/ 安装完之后,可以使用 Git Bash 作为命令行客户端。 安装完之后

Java - 网络编程完全总结

雨燕双飞 提交于 2020-01-29 05:37:33
本文主要是自己在网络编程方面的学习总结,先主要介绍计算机网络方面的相关内容,包括计算机网络基础,OSI参考模型,TCP/IP协议簇,常见的网络协议等等,在此基础上,介绍Java中的网络编程。 一、概述 二、计算机网络 1.网络协议 2.网络体系结构 三、OSI参考模型 四、TCP/IP参考模型 五、常见网络协议 1.TCP协议 2.UDP协议 3.HTTP协议 六、计网常见问题 七、Java网络编程 一、概述 计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共享和数据传输的系统。网络编程就就是编写程序使联网的两个(或多个)设备(例如计算机)之间进行数据传输。Java语言对网络编程提供了良好的支持,通过其提供的接口我们可以很方便地进行网络编程。下面先对网络编程的一些基础知识进行介绍,最后给出使用Java语言进行网络编程的实例。 二、计算机网络 计算机网络20世纪60年代出现,经历了20世纪70年代、80年代和90年代的发展,进入21世纪后,计算机网络已经成为信息社会的基础设施,深入到人类社会的方方面面,与人们的工作、学习和生活息息相关。 网络协议 如同人与人之间相互交流是需要遵循一定的规矩一样,计算机之间能够进行相互通信是因为它们都共同遵守一定的规则,即网络协议。 网络体系结构 计算机网络是个复杂的系统,按照人们解决复杂问题的方法

webrtc服务器搭建

只谈情不闲聊 提交于 2020-01-28 09:55:35
webRTC服务器搭建 目前主流的ip方式是 ip4 ,地址是有限的,会出现很多内网,通过内网解决ip地址不可分的问题。很多客户端都处在 192.168.1.xx 这种内网。两个客户端之间想要交互,就必须进行内网穿透,进行NAT转换。想要完成NAT 转换,必须通过服务器,才能实现 p2p 通信。 服务器介绍: turn 服务器作用:寻找两个客户端之间最短的网络路径,以便建立p2p通信。 webrtc默认支持 turn服务器 ,只需要搭建一个 turn 服务。只需要通过 webrtc 告诉turn服务地址就可以。对外提供服务,端口是 3478 socket 服务器作用:sdp交换,icecandidate交换,信息交换及业务逻辑。 端口自己定义, 3000 实际项目中,是通过 ngix 进行服务分发。 服务器搭建: 相关介绍: turn服务可以直接在官网获取, ngix服务: socket服务需要自己来写。 socket服务有两个版本,java和nodejs版本 Webrtc服务器搭建后台项目地址 java项目 NodeJs项目 以下所有的【注意:】皆为本人添加的备注。 本搭建是基于centos 7.6 64位系统,系统恢复原始状态,重新装系统,确保人人都能搭建成功** 如果系统安装了基础软件 如git gcc++ 可以跳该步骤 yum update yum install git

理解session机制

感情迁移 提交于 2020-01-28 04:22:17
session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。 当 程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为 session id,如果已包含一个session id则说明以前已经为此客户端创建过session,服务器就按照session id把这个 session检索出来使用(如果检索不到,可能会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成 一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个 session id将被在本次响应中返回给客户端保存。 保存这个session id的方式可以采用cookie,这样在交互过程中浏 览器可以自动的按照规则把这个标识发挥给服务器。一般这个cookie的名字都是类似于 SEEESIONID,而。比如weblogic对于web应用 程序生成的cookie,JSESSIONID= ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764,它的名字就是 JSESSIONID。 由于cookie可以被人为的禁止