A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© q997842728 初级黑马   /  2018-11-29 14:23  /  667 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

软件架构

   
* C/S架构
   
* 概述:客户端/服务器架构,用户使用需要单独安装客户端
           
* 举例:QQ客户端/腾讯服务器后台
           
* 优点:
         
         1. 数据有部分存储在客户端,对于服务器的开销相对较小
           
         2. 由于安装了单独的客户端,所以可以有丰富的功能
           
* 缺点:
                      
        1. 客户端需要安装,不够便捷
                   
        2. 每次更新客户端都需要重新安装一次,维护成本相对较高
   


* B/S架构
            * 概述:浏览器/服务器架构,用户只需要用浏览器就可以使用
           
* 举例:JD淘宝网站
           
* 优点:

        1. 使用方便
           
        2. 所有的数据都在服务器,不需要额外更新客户端,维护成本低
           
* 缺点:
        1. 所有的数据都只能存在服务器端,对服务器的开销大
            
        2. 由于没有单独的客户端,要在浏览器上完成交互,功能相对会弱一些

网络通信三要素:

网络通信三要素:
* IP地址:
        * 概述:IP地址是计算机在某个网络环境中的唯一标识
        1. IPv4:
                1. 由32个二进制位转换成4个十进制
                2. 每个十进制是一个字节,范围是0-255
                3. 每个字节数据由点隔开
                4. 举例:192.168.1.1
        2. IPv6
                1. 由128个二进制位转换成8个十六进制
                2. 举例:ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
* 端口号
        * 概述:进程在计算机中的唯一标识
        * 其实本质就是一组范围在0 - 65535的整数
        * 注意:
                1. 在一台计算机中进程的端口号不能重复
                2. 大部分0-1023的端口都被系统占用了
* 协议
        * UDP协议:
        * 概述:不会和数据接收对象进行连接,发送数据就相当于发了广播,在的人就听到了,没在的人就没听到,没听到

也无所谓,不会再重新发送
        * 优点:
            1. 不需要连接,速度快
        * 缺点:
            1. 无连接,不安全,不保证数据传输的成功性
            2. 有大小限制 64k以内
        * TCP协议:
        * 概述:连接的三次握手:
            1. 客户端向服务器发送请求
            2. 服务器向客户端响应
            3. 客户端收到响应后确认服务器的响应。
        * 优点:
            1. 安全可靠
            2. 大小没有限制

         * 缺点:由于需要三次握手建立连接,效率低
TCP协议实现
* 客户端实现:Socket
        1. 构造:Socket("IP地址",端口号)
                * 注意:
                        * 当创建客户端对象的时候,会尝试与指定IP和端口号的服务器进行"三次握手"的连接,如果连接

失败会抛出异常
        2. 成员方法:
                1. public InputStream getInputStream() : 返回此套接字的输入流。
                        如果此Scoket具有相关联的通道,则生成的InputStream 的所有操作也关联该通道。
                        关闭生成的InputStream也将关闭相关的Socket。
                2. public OutputStream getOutputStream() : 返回此套接字的输出流。
                        如果此Scoket具有相关联的通道,则生成的OutputStream 的所有操作也关联该通道。
                        关闭生成的OutputStream也将关闭相关的Socket。
                3. public void close() :关闭此套接字。
                        一旦一个socket被关闭,它不可再使用。
                        关闭此socket也将关闭相关的InputStream和OutputStream。
                4. public void shutdownOutput() : 禁用此套接字的输出流。
                        任何先前写出的数据将被发送,随后终止输出流。
* 服务器实现:ServerSocket
* 客户端实现:Socket
        1. 构造:Socket("IP地址",端口号)
                * 注意:
                        * 当创建客户端对象的时候,会尝试与指定IP和端口号的服务器进行"三次握手"的连接,如果连接

失败会抛出异常
        2. 成员方法:
                1. public InputStream getInputStream() : 返回此套接字的输入流。
                        如果此Scoket具有相关联的通道,则生成的InputStream 的所有操作也关联该通道。
                        关闭生成的InputStream也将关闭相关的Socket。
                2. public OutputStream getOutputStream() : 返回此套接字的输出流。
                        如果此Scoket具有相关联的通道,则生成的OutputStream 的所有操作也关联该通道。
                        关闭生成的OutputStream也将关闭相关的Socket。
                3. public void close() :关闭此套接字。
                        一旦一个socket被关闭,它不可再使用。
                        关闭此socket也将关闭相关的InputStream和OutputStream。
                4. public void shutdownOutput() : 禁用此套接字的输出流。
                        任何先前写出的数据将被发送,随后终止输出流。
* 服务器实现:ServerSocket
* 客户端实现:Socket
        1. 构造:Socket("IP地址",端口号)
* 注意:
* 当创建客户端对象的时候,会尝试与指定IP和端口号的服务器进行"三次握手"的连接,如果连接失败
会抛出异常
        2. 成员方法:
                1. public InputStream getInputStream() : 返回此套接字的输入流。
                        如果此Scoket具有相关联的通道,则生成的InputStream 的所有操作也关联该通道。
                        关闭生成的InputStream也将关闭相关的Socket。
                2. public OutputStream getOutputStream() : 返回此套接字的输出流。
                        如果此Scoket具有相关联的通道,则生成的OutputStream 的所有操作也关联该通道。
                        关闭生成的OutputStream也将关闭相关的Socket。
                3. public void close() :关闭此套接字。
                        一旦一个socket被关闭,它不可再使用。
                        关闭此socket也将关闭相关的InputStream和OutputStream。
                4. public void shutdownOutput() : 禁用此套接字的输出流。
                        任何先前写出的数据将被发送,随后终止输出流。

* 服务器实现:ServerSocket
        1. 构造:ServerSocket(端口号)
        2. 成员方法:
                1. public Socket accept() :侦听并接受连接,返回一个新的Socket对象,用于和客户端实现通信。该方

法会一直阻塞直到建立连接

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马