accept

SpringMVC 注解

假如想象 提交于 2019-12-09 01:45:02
@Controller 在 springmvc 2.5 之前通过继承 Controller 接口实现控制器 //接口定义 public interface Controller { ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception; } //实现方式 public Mycontroller implements Controller{ ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception{ //do Something... } } 在 springmvc 2.5 之后利用注解的方式(即 @Controller)实现控制器,实现了彻底解耦。一个类在使用了该注解之后就表明自己是一个控制器。 首先来看 @controller 的注解定义 // 表示作用类或接口上,在运行时有效 Target({ElementType.TYPE}) Retention(RetentionPolicy.RUNTIME) Documented @Component public @ interface Controller { String

配置使用HTTP方式访问SVN

这一生的挚爱 提交于 2019-12-08 13:45:49
1.首先要安装svn 请参考 CentOS搭建SVN服务器 2.配置Apache的http协议访问 查看httpd是否已经安装的svn模块 # ls /etc/httpd/modules/ | grep svn ls: cannot access /etc/httpd/modules/: No such file or directory 没安装,使用yum安装。 # yum install mod_dav_svn # ls /etc/httpd/modules/ | grep svn mod_authz_svn.so mod_dav_svn.so 安装完成,对svn版本库下的项目ProjectName进行位置映射 在/etc/httpd/conf.d/文件下创建subversion.conf文件并编辑 LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /ProjectName > DAV svn SVNPath /home/svn/ProjectName/ AuthType Basic AuthName "Subversion repos" AuthUserFile /home/svn/ProjectName

Iptables 之二扩展模块

喜夏-厌秋 提交于 2019-12-08 09:08:46
问题一:如果开发被动模式的ftp服务? 21号端口是命令连接端口,数据连接端口不固定 三步骤:   (1)装载ftp追踪时的专用的模块       /lib/modules/$(uname-r)/kernel/kernel下有个trace模块           /lib/modules/$(uname-r)/kernel/net 下有个netfilter目录 nf_conntrack_ftp.ko.xz 此模块 专门为ftp追踪 RELATED 连接的专用模块      #modprode nf_conntrack_ftp 手动装载此依赖模块 [root@localhost netfilter]# modinfo nf_conntrack_ftp.ko.xz filename: /lib/modules/3.10.0-693.el7.x86_64/kernel/net/netfilter/nf_conntrack_ftp.ko.xz alias: nfct-helper-ftp alias: ip_conntrack_ftp description: ftp connection tracking helper author: Rusty Russell <rusty@rustcorp.com.au> license: GPL rhelversion: 7.4

Linux下Golang Socket编程原理分析与代码实现

牧云@^-^@ 提交于 2019-12-07 18:10:33
  在POSIX标准推出后,socket在各大主流OS平台上都得到了很好的支持。而Golang是自带Runtime的跨平台编程语言,Go中提供给开发者的Socket API是建立在操作系统原生Socket接口之上的。但Golang 中的Socket接口在行为特点与操作系统原生接口有一些不同。本文将结合一个简单的网络聊天程序加以分析。 一、socket简介 首先进程之间可以进行通信的前提是进程可以被唯一标识,在本地通信时可以使用PID唯一标识,而在网络中这种方法不可行,我们可以通过IP地址+协议+端口号来唯一标识一个进程,然后利用socket进行通信。socket通信流程如下: 1.服务端创建socket 2.服务端绑定socket和端口号 3.服务端监听该端口号 4.服务端启动accept()用来接收来自客户端的连接请求,此时如果有连接则继续执行,否则将阻塞在这里。 5.客户端创建socket 6.客户端通过IP地址和端口号连接服务端,即tcp中的三次握手 7.如果连接成功,客户端可以向服务端发送数据 8.服务端读取客户端发来的数据 9.任何一端均可主动断开连接 二、socket编程 有了抽象的socket后,当使用TCP或UDP协议进行web编程时,可以通过以下的方式进行。 服务端伪代码: listenfd = socket(……) bind(listenfd, ServerIp

docker 构建 jdk1.8 tomcat images

ぃ、小莉子 提交于 2019-12-07 15:34:43
1. 创建docker 目录 mkdir /z/docker cd /z/docker 2. 下载并解压jdk-8u144-linux-x64.tar.gz, 修改目录名为java 3. 下载并解压apache-tomcat-7.0.52.tar.gz,修改目录名为tomcat7 4. 编写 docker 构建 文件 vi Dockerfile 复制以下内容到 Dockedrfile 中 #使用的基础镜像 FROM centos #创建目录 RUN mkdir -p /z/home #把当前目录下的jdk文件夹添加到镜像 ADD tomcat /z/home/tomcat7.0 ADD java /z/home/java ENV JAVA_HOME /z/home/java/ ENV CATALINA_HOME /z/home/tomcat7.0 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin #暴露8080端口 EXPOSE 8080 #启动时运行tomcat CMD ["/z/home/tomcat7.0/bin/catalina.sh","run"] 5. 构建 images镜像 docker build -t repos_local/tomcat . 6. 根据镜像启动一个 container docker run -d

linux防火墙(一)

╄→гoц情女王★ 提交于 2019-12-06 20:59:35
安全技术 入侵检测与管理系统IDS(Intrusion Detection Systems):特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报告和事后监督为主,提供有针对性的指导措施和安全决策依据。一般采用旁路部署方式。 入侵防御系统IPS(Intrusion Prevention System):以透明模式工作,分析数据包的内容如:溢出攻击、拒绝服务攻击、木马、蠕虫、系统漏洞等进行准确的分析判断,在判定为攻击行为后立即予以阻断,主动而有效的保护网络的安全,一般采用在线部署方式。 防火墙( FireWall ):隔离功能,工作在网络或主机边缘,对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则时由规则定义的行为进行处理的一组功能的组件,基本上的实现都是默认情况下关闭所有的通过型访问,只开放允许访问的策略。 防火墙的分类 防火墙的分类 (1)主机防火墙:服务范围为当前主机 网络防火墙:服务范围为防火墙一侧的局域网 (2)硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现,如:Checkpoint,NetScreen 软件防火墙:运行于通用硬件平台之上的防火墙的应用软件 (3)网络层防火墙:OSI模型下四层 应用层防火墙/代理服务器:代理网关,OSI模型七层 网络层防火墙 包过滤防火墙 网络层对数据包进行选择

GO网络编程和Linux Socket API的关系

一笑奈何 提交于 2019-12-06 20:53:33
server.go package main import "net" import "fmt" import "bufio" import "strings" // only needed below for sample processing func main() { fmt.Println("Launching server...") // 监听端口8081 ln, _ := net.Listen("tcp", ":8081") // 接入 conn, _ := ln.Accept() for { message, _ := bufio.NewReader(conn).ReadString('\n') fmt.Print("Message Received:", string(message)) //处理一下收到的数据 newmessage := strings.ToUpper(message) //写回到客户端 conn.Write([]byte(newmessage + "\n")) } } client.c package main import "net" import "fmt" import "bufio" import "os" func main() { // 连接到服务器 conn, _ := net.Dial("tcp", "127.0.0.1:8081

Java的socket通信与操作系统的SocketAPI关系探究

杀马特。学长 韩版系。学妹 提交于 2019-12-06 19:48:26
Java使用Socket的通信过程 1.服务器端socket绑定端口,并一直监听该端口,等待客户端的连接 2.客户端绑定一个端口,并通过套接字连接服务器端等待服务的端口 3.连接成功后,服务器端和客户端通过建立的连接进行通信 4.一端关闭连接,另一端捕捉异常通信结束。 使用Java代码实现上述的通信过程: 客户端代码: package chat2; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; import java.util.Scanner; public class ClientSocket { public static void main(String[] args) throws Exception { try { System.out.println("聊天开始"); while (true) { Socket client_socket = new Socket(InetAddress.getLocalHost(), 4856); OutputStream os = client_socket.getOutputStream(); Scanner sc = new Scanner(System

node.js多进程架构

倖福魔咒の 提交于 2019-12-06 18:59:27
node.js是单进程应用,要充分利用多核cpu的性能,就需要用到多进程架构。 作为web服务器,不能多个进程创建不同的socket文件描述符去accept网络请求, 有经验的同学知道,如果端口被占用了,再跑一个监听该端口的服务就会报EADDRINUSE异常。那么问题来了,多进程架构如何去解决这个问题? 我们把多进程架构设计成典型的master-workers架构, 一个master, 多个worker。 master-workers架构如下图所示: 我们可以在master进程代理accept请求然后分配给worker处理。但客户端进程连接到master进程,master进程连接到worker进程需要用掉两个文件描述符,会浪费掉一倍数量的文件描述符。 所以交由worker来accept请求会是更好的方案。 master先创建一个server监听端口,然后通过进程间通信,把socket文件描述符传递给所有的worker进程, worker进程用传递过来的socket文件描述符封装成server(感官上好像是把一个server对象发送给另一个进程,其实是把相应的句柄封装后,通过JSON.stringify()序列化再发送, 接收端进程还原成相应的句柄。) 然后,还有一个问题,假如其中一个worker进程异常退出了怎么办, 这个时候,worker进程应该要通知到master进程

centos7中防火墙的使用

你离开我真会死。 提交于 2019-12-06 13:59:46
#*#firewall防火墙详解和配置以及iptables防火墙(建议开启此防火墙,适应配置) 1,官方文档介绍: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html#sec-Introduction_to_firewalld1 2,CentOS 7中防火墙是一个非常的强大的功能,是在CentOS 6.5中在iptables防火墙中进行的升级。 3,firewall配置   1,系统配置目录(目录中存放定义好的网络服务和端口参数,系统参数,不能修改) /usr/lib/firewalld/services   2,用户配置目录 /etc/firewalld/   3,查询状态,开放端口,启用 查询服务状态 systemctl status firewalld 查看firewall状态 firewall-cmd --state查询哪些端口开放firewall-cmd --list-port 查询端口是否开放(eg:80) firewall-cmd --query-port=80/tcp 开放端口(eg:80)firewall-cmd --zone=public --add-port=80/tcp -