accept

C++设计模式-访问者模式

喜夏-厌秋 提交于 2020-02-14 01:53:16
动机 在软件构建的过程中,由于需求的改变,某些类层次结构中常常需要增加新的行为(方法),如果直接在基类中做这样的更改,将会给子类带来很繁重的变更负担,甚至破坏原有设计。 如何在不更改类层次结构的前提下,在运行时根据需要透明地为类层次结构上的各个类动态添加新的操作,从而避免上述问题? 模式定义 表示一个作用于某对象结构中的各元素的操作。使得可以在不改变(稳定)各元素的类的前提下定义(扩展)作用于这些元素的信操作(变化) 结构 ObjectStructure(对象结构):能够枚举它的元素,同时提供一个高层的接口以允许该访问者访问它的元素。 示例 class Visitor; class Element { public: virtual void accept(Visitor& visitor) = 0; //第一次多态辨析 virtual ~Element(){} }; class ElementA : public Element { public: void accept(Visitor &visitor) override { visitor.visitElementA(*this); } }; class ElementB : public Element { public: void accept(Visitor &visitor) override { visitor

二十六.行为型设计模式——Visitor Pattern(访问者模式)

六眼飞鱼酱① 提交于 2020-02-14 01:00:30
定义   说明一个操作执行于一个对象结构的成员(elements)中。访问者样式让你定义一个类的新操作而无须改变它操作的这些成员类。   UML类图如下:      其中类和对象的关系为:   1.Visitor(抽象访问者):为对象结构类中每一个ConcreteElement的类声明一个Visit操作。这个操作的名称及标志(signature)识别传出Visit请求给访问者的类。这就使得访问者可以解定正要被访问的元素的具体类,这样访问者就可以直接经由其特有接口访问到元素(Element)。   2.ConcreteVisitor(具体访问者):实现每个由Visitor声明的操作。每个操作实现本算法的一部分,而该算法片段乃是对应于结构中对象的类。ConcreteVisitor为该算法提供了场景并存储它的局部状态。这一状态常常在遍历该结构的过程中积累结果。   3.Element(元素):定义一个Accept操作,它以一个访问者为参数。   4.ConcreteElement(抽象具体元素):实现Accept操作,该操作以一个访问者为参数。   5.ObjectStructure(对象结构类):能枚举它的元素;可以提供一个高层的接口以允许访问者访问它的元素;可以是一个组合模式(Composite Pattern)或是一个集合,如一个列表或一个无序集合。   典型应用的顺序图如下:  

Java 之 TCP 通信程序

一笑奈何 提交于 2020-02-14 00:22:43
一、TCP协议概述   TCP(Transmission Control Protocol,传输控制协议)被称作一种端对端协议。是一种面向连接的、可靠的、基于字节流的传输层的通信协议,可以连续传输大量的数据。   这是因为它为当一台计算机需要与另一台远程计算机连接时,TCP协议会采用“三次握手”方式让它们建立一个连接,用于发送和接收数据的虚拟链路。数据传输完毕TCP协议会采用“四次挥手”方式断开连接。   TCP协议负责收集这些信息包,并将其按适当的次序放好传送,在接收端收到后再将其正确的还原。TCP协议保证了数据包在传送中准确无误。TCP协议使用重发机制,当一个通信实体发送一个消息给另一个通信实体后,需要收到另一个通信实体确认信息,如果没有收到另一个通信实体确认信息,则会再次重复刚才发送的消息。   TCP 通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client)与服务端(Server)。   两端通信时步骤:      1、服务端程序,需要事先启动,等待客户端的连接;     2、客户端主动连接服务器端,连接成功才能通信。服务端不可以主动连接客户端。   在 Java 中,提供了两个类用于实现 TCP 通信程序:      1、 客户端 :java.net.Socket 类表示。创建 Socket 对象,向服务端发出连接请求,服务器响应请求

iptables基础知识

巧了我就是萌 提交于 2020-02-14 00:20:51
ipfw ipfwadmin ipchains ipchains netfilter iptables firewall 防火墙的工作原理:防火墙工作在网络的边缘位置 netfilter/iptables 一、防火墙结构 1、防火墙的规则表 raw:跟踪 mangle:标记 nat:转换 filter:过滤 2、防火墙的规则链 INPUT:入站 OUTPUT:出站 FORWARD:转发 PREROUTING:路由前 POSTROUTING:路由后 3、表和链的对应关系 raw: PREROUTING OUTPUT mangle: all nat: PREROUTING OUTPUT POSTROUTING filter: INPUT OUTPUT FORWARD 4、规则表的应用顺序 raw - mangle - nat - filter 5、规则链的应用顺序 入站数据流: PREROUTING - INPUT 出站数据流: OUTPUT - POSTROUTING 转发数据流: PREROUTING - FORWARD - POSTROUTING 6、规则的应用顺序 a、从上到下依次匹配,匹配即停止(LOG除外) b、没有匹配项时,采用默认规则(policy规则,只有ACCEPT和DROP) 二、防火墙规则 1、语法: iptables -t 表名 选项 链名 条件匹配 -j

java学习与应用(3.5)--网络、流、方法引用

Deadly 提交于 2020-02-10 18:28:30
网络编程 C/S结构,B/S结构。TCP/IP传输控制协议/网络协议(面向连接,三次握手,无差错传输)。UDP用户数据报协议(无连接,发送端不确认接收端是否存在,64kb限制)。 IPv4地址(42亿个,每个4字节),IPv6地址(每个16字节)。网络软件打开后,由操作系统分配端口号(两个字节0-65535,1024之前的端口号已被分配)。 端口号使得数据能够正确发送到指定位置,80网络端口,3306mysql端口,oracle1521端口,tomcat端口8080. 客户端请求服务器端,建立连接IO对象,使用IO对象(网络字节流对象)进行通信。对应的类为Socket类(客户端),ServerSocket类(服务器端)。 服务器端(没有IO流)的accept方法,获取请求的客户端对象Socket。使用获取的对应客户端的Socket与该客户端交互。 Socket类,套接字(IP和端口号)。其构造方法Socket传入套接字,使用getOutputStream方法返回输出流,使用getInputStream方法返回输入流,close关闭。 客户端:getOutputStream的write方法给服务器发送数据,getInputStream的read方法读取服务器返回数据。 服务端:ServerSocket类,构造方法传入端口号建立对象,accept方法获取客户端的Socket

Java 常用函数式接口 —— Consumer接口

允我心安 提交于 2020-02-09 04:47:35
JDK提供了大量常用的函数式接口以丰富Lambda的典型使用场景,它们主要在 java.util.function 包中被提供。 下面是最简单的Consumer接口及使用示例。 Consumer接口概述 @FunctionalInterface public interface Consumer<T> { /** * 对给定参数执行消费操作。 * * @param t 输入参数 */ void accept(T t); default Consumer<T> andThen(Consumer<? super T> after) { Objects.requireNonNull(after); return (T t) -> { accept(t); after.accept(t); }; } } java.util.function.Consumer<T> 接口则正好与 Supplier接口 相反,它不是生产一个数据,而是消费一个数据, 其数据类型由泛型决定。 抽象方法:accept Consumer 接口中包含抽象方法 void accept(T t) ,意为消费一个指定泛型的数据。基本使用如: import java.util.function.Consumer; public class Demo01Consumer { public static void main

如何理解php socket

孤街浪徒 提交于 2020-02-08 15:08:39
  什么是socket?   Socket 是在应用层和传输层之间的一个抽象层,它把 TCP/IP 层复杂的操作抽象为几个简单的接口,供应用层调用实现进程在网络中的通信。Socket 起源于 UNIX,在 UNIX 一切皆文件的思想下,进程间通信就被冠名为文件描述符(file descriptor),Socket 是一种“打开—读/写—关闭”模式的实现,服务器和客户端各自维护一个“文件”,在建立连接打开后,可以向文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。   如图为Socket所在位置:   Socket 通信过程   Socket 保证了不同计算机之间的通信,也就是网络通信。对于网站,通信模型是服务器与客户端之间的通信。两端都建立了一个 Socket 对象,然后通过 Socket 对象对数据进行传输。通常服务器处于一个无限循环,等待客户端的连接。   相关学习视频教程分享:php视频教程   下图是面向连接的 TCP 时序图:   客户端过程:   客户端的过程比较简单,创建 Socket,连接服务器,将 Socket 与远程主机连接(注意:只有 TCP 才有“连接”的概念,一些 Socket 比如 UDP、ICMP 和 ARP 没有“连接”的概念),发送数据,读取响应数据,直到数据交换完毕,关闭连接,结束 TCP 对话。   这里也可用 send() 方法

网络编程

左心房为你撑大大i 提交于 2020-02-08 14:04:18
主要内容 软件架构CS/BS 网络通信三要素 TCP通信 Socket套接字 ServerSocket 学习目标 [ ] 能够辨别UDP和TCP协议特点 [ ] 能够说出TCP协议下两个常用类名称 [ ] 能够编写TCP协议下字符串数据传输程序 [ ] 能够理解TCP协议下文件上传案例 第一章 网络编程入门 1.1软件结构 C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。 B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。 两种架构各有优势,但是无论哪种架构,都离不开网络的支持。 网络编程 ,就是在一定的协议下,实现两台计算机的通信的程序。 1.2 网络通信协议 网络通信协议: 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换。 TCP/IP协议: 传输控制协议/因特网互联协议( Transmission Control Protocol/Internet Protocol),是Internet最基本、最广泛的协议

CentOS 安装以及配置Apache php mysql

青春壹個敷衍的年華 提交于 2020-02-06 02:19:42
准备篇: 1、配置防火墙,开启80端口、3306端口 vi /etc/sysconfig/iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT #允许80端口通过防火墙 -A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT #允许3306端口通过防火墙 备注:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败, 正确的应该是添加到默认的22端口这条规则的下面 如下所示: ######################################################## # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j

Linux防火墙之iptables入门

假如想象 提交于 2020-02-06 02:05:16
一、防火墙的概念   什么是防火墙?防火墙是一台或一组设备,用以在网络间实施访问控制策略;事实上一个防火墙能够包含OSI模型中的很多层,并且可能会涉及进行数据包过滤的设备,它可以实施数据包检查和过滤,在更高的层次中对某应用程序实现某一策略,或做更多类似的事情。防火墙的功能主要是隔离功能,工作在网络或主机边缘,对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则定义的行为进行处理的一组功能组件,基本上的实现都是默认情况下关闭所有的访问,只开放允许访问的策略;防火墙分主机防火墙、网络防火墙、硬件防火墙、软件防火墙、网络层防火墙、应用层防火墙等;主机防火墙指定的是针对服务当前主机做的访问策略的防火墙;网络防火墙指服务范围为防火墙一侧的局域网;硬件防火墙指在专用硬件级别实现部分功能的防火墙,另一部分功能基于软件实现;软件防火墙指运行于通用硬件平台之上的防火墙应用软件;网络层防火墙指OSI模型下四层的防火墙,主要针对OSI模型下四层的网络报文的访问策略控制;应用层防火墙/代理服务器指OSI模型中的应用层的防火墙,它主要在应用层进行操作,针对应用层的程序数据报文进行访问策略控制; 二、网络型防火墙和应用层防火墙的优缺点   网络层防火墙主要是包过滤,网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,被称为访问控制列表(ACL),通过检查数据流中每个数据的源地址,目标地址