accept

Mina学习

£可爱£侵袭症+ 提交于 2019-12-04 23:04:55
1. 2. 3. 4.MinaServer.java package com.mina; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.charset.Charset; import org.apache.mina.core.service.IoAcceptor; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.filter.codec.ProtocolCodecFilter; import org.apache.mina.filter.codec.textline.LineDelimiter; import org.apache.mina.filter.codec.textline.TextLineCodecFactory; import org.apache.mina.transport.socket.nio.NioSocketAcceptor; public class MinaServer { //定义端口 static int PORT=7080; //服务端使用IoAcceptor static IoAcceptor accept=null; public

3. 彤哥说netty系列之Java BIO NIO AIO进化史

心不动则不痛 提交于 2019-12-04 22:56:26
你好,我是彤哥,本篇是netty系列的第三篇。 简介 上一章我们介绍了IO的五种模型,实际上Java只支持其中的三种,即BIO/NIO/AIO。 本文将介绍Java中这三种IO的进化史,并从使用的角度剖析它们背后的故事。 Java BIO BIO概念解析 BIO,Blocking IO,阻塞IO,它是Java的上古产品,自出生就有的东西(JDK 1.0)。 使用BIO则数据准备和数据从内核空间拷贝到用户空间两个阶段都是阻塞的。 BIO使用案例 public class EchoServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(8080); while (true) { System.out.println("start accept"); Socket socket = serverSocket.accept(); System.out.println("new conn: " + socket.getRemoteSocketAddress()); new Thread(()->{ try { BufferedReader reader = new BufferedReader(new

Linux防火墙iptables规则设置

可紊 提交于 2019-12-04 21:34:30
iptables 命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。 一、语法 iptables(选项)(参数) 二、选项 -t<表>:指定要操纵的表; -A:向规则链中添加条目; -D:从规则链中删除条目; -i:向规则链中插入条目; -R:替换规则链中的条目; -L:显示规则链中已有的条目; -F:清楚规则链中已有的条目; -Z:清空规则链中的数据包计算器和字节计数器; -N:创建新的用户自定义规则链; -P:定义规则链中的默认目标; -h:显示帮助信息; -p:指定要匹配的数据包协议类型; -s:指定要匹配的数据包源ip地址; -j<目标>:指定要跳转的目标; -i<网络接口>:指定数据包进入本机的网络接口; -o<网络接口>:指定数据包要离开本机所使用的网络接口。 1、iptables命令选项输入顺序: iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作 表名包括: raw :高级功能,如:网址过滤。 mangle :数据包修改(QOS),用于实现服务质量。 net :地址转换,用于网关路由器。 filter :包过滤,用于防火墙规则

Java——》Content-Type详解

做~自己de王妃 提交于 2019-12-04 14:20:25
Java——》Content-Type详解 一、MediaType 二、Content-Type格式 1、类型格式 2、常见的媒体格式类型 3、Content-Type 和 Accept 区别 三、Content-Type用法 1.headers 2.consumes 3.produces 四、参考链接 1. HTTP中的Content-Type和Accept 2. @RequestMapping的参数和用法 一、MediaType MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型。 在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。 二、Content-Type格式 1、类型格式 type/subtype(;parameter)? type 参数 说明 type 主类型,任意的字符串,如text,如果是*号代表所有 subtype 子类型,任意的字符串,如html,如果是*号代表所有; parameter 可选,一些参数,如Accept请求头的q参数, Content-Type的 charset参数 2、常见的媒体格式类型 类型 说明 text/html HTML格式 ext/plain 纯文本格式 text/xml XML格式 image/gif gif图片格式 image/jpeg

22-Perl Socket 编程

二次信任 提交于 2019-12-04 11:47:15
1.Perl Socket 编程 Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。 本章节我们为大家接收 Perl 语言中如何使用 Socket 服务。 1.1创建服务端 使用 socket 函数来创建 socket服务。 使用 bind 函数绑定端口。 使用 listen 函数监听端口。 使用 accept 函数接收客户端请求。 1.2创建客户端 使用 socket 函数来创建 socket 服务。 使用 connect 函数连接到 socket 服务端。 1.3 以下图表演示了客户端与服务端之间的通信流程: Client Server socket() socket() | bind() | listen() connect() accept() Read/Write Data --><-- Read/Write Data close() close() 2.服务端 socket 函数 2.1socket 函数 Perl 中,我们用 socket()函数来创建套接字,语法格式如下: socket( SOCKET, DOMAIN, TYPE, PROTOCOL ); 参数解析: DOMAIN 创建的套接字指定协议集。 例如: AF_INET 表示IPv4网络协议 AF_INET6 表示IPv6 AF

multi paxos协议

廉价感情. 提交于 2019-12-04 09:28:28
不知道有没有人和一样,看完paxos协议之后,再看zab协议,感觉两个实际上并木有什么关系。如果有,那是因为你漏掉了multi paxos协议,它实际上才是能真正将paxos协议用于生产中的。 先说活锁,如果有n个proposer,他们要发起提案就难免这样的场景。acceptor先应答prepare proposer的1版本,当proposer美滋滋发起accept的时候,acceptor告诉它。抱歉,我又prepare了别的proposer的3版本。卧槽,我裤子都脱了,你又答应别人了,不行,不争馒头还要争口气,那我把我的版本号加高,这样,就进入了一个恶性循环中去,大家都在拼命地加高版本号,就像。。。今年双十一淘宝的盖楼活动一样。所以,这样的paxos协议是没法用于生产的。 当然,我们的Lamport大佬不会整这么一个没用的东西。其实问题很好解决,只有一个proposer就行了,其它的在旁边看着。这个就是multi paxos算法了。那么接下来的问题就是,谁来当这个唯一的proposer,也就是leader。 multi-paxos并没有一个显式的选主的过程,其实只是在basic paxos过程中稍加改动而已,分为以下阶段: 一、proposer进行prepare,获得半数以上支持的,就自认为leader 二、这个阶段,会有多个自以为是的leader,但是真leader只能有一个

Netty

僤鯓⒐⒋嵵緔 提交于 2019-12-03 17:32:01
https://www.cnblogs.com/lfs2640666960/p/10012354.html Netty到底是什么 从HTTP说起 有了Netty,你可以实现自己的HTTP服务器,FTP服务器,UDP服务器,RPC服务器,WebSocket服务器,Redis的Proxy服务器,MySQL的Proxy服务器等等。 我们回顾一下传统的HTTP服务器的原理 1、创建一个ServerSocket,监听并绑定一个端口 2、一系列客户端来请求这个端口 3、服务器使用Accept,获得一个来自客户端的Socket连接对象 4、启动一个新线程处理连接 4.1、读Socket,得到字节流 4.2、解码协议,得到Http请求对象 4.3、处理Http请求,得到一个结果,封装成一个HttpResponse对象 4.4、编码协议,将结果序列化字节流 写Socket,将字节流发给客户端 5、继续循环步骤3 HTTP服务器之所以称为HTTP服务器,是因为编码解码协议是HTTP协议,如果协议是Redis协议,那它就成了Redis服务器,如果协议是WebSocket,那它就成了WebSocket服务器,等等。 使用Netty你就可以定制编解码协议,实现自己的特定协议的服务器。 NIO 上面是一个传统处理http的服务器,但是在高并发的环境下,线程数量会比较多,System load也会比较高

python之selectors模块

▼魔方 西西 提交于 2019-12-03 17:31:37
python之selectors模块 selectors模块是在python3.4版本中引进的,它封装了IO多路复用中的select和epoll,能够更快,更方便的实现多并发效果。 官方文档见: https://docs.python.org/3/library/selectors.html 以下是一个selectors模块的代码示范: #!/usr/bin/python #Author:sean import selectors import socket #selectors模块默认会用epoll,如果你的系统中没有epoll(比如windows)则会自动使用select sel = selectors.DefaultSelector() #生成一个select对象 def accept(sock, mask): conn, addr = sock.accept() # Should be ready print('accepted', conn, 'from', addr) conn.setblocking(False) #设定非阻塞 sel.register(conn, selectors.EVENT_READ, read) #新连接注册read回调函数 def read(conn, mask): data = conn.recv(1024) # Should be

URL 请求映射注解大全

家住魔仙堡 提交于 2019-12-03 17:05:20
@Controller 负责注册一个bean 到 spring 上下文中,用于标识是处理器类 @RequestMapping 注解为控制器制定可以处理哪些URL请求,可用于类或者方法上。 用于类上:表示类中的所有方法请求都是以该参数value值中的内容作为父路径请求 用于方法:表示映射到具体的URI参数 我就把RequestMapping的主要六个注解来分别看看: value : 指定请求的实际地址,也就是想http uri 中的请求参数是什么内容,才能跳入调用这个方法 method :指定http请求的method类型( get、post、put、delete 等) consumes :指定处理http请求的提交内容类型(也就是http中的 Content-Type 参数) produces :指定该方法处理后返回的内容类型,仅当request请求头中的Accept类型中包含该指定类型才返回。这句话意思就是,若是客户端可以接收 text/html;application/json 等类型的数据类型,那么我服务器端才在该函数处理完数据后,以这些格式将数据封装返回浏览器。 params :指定request请求中必须包含的某些参数,才让该方法处理 headers :指定request中必须包含的某些指定的header指定 @PathVariable 当使用

FreeMarker template error: The following has evaluated to null or missing | BUT NOT TRUE

匿名 (未验证) 提交于 2019-12-03 08:57:35
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: The error I'm facing is so weird. Everything looks fine, but I get this error when the browser sends the GET request to the server. What I'm trying to do is actually catching the HTTP parameters, save them in an object saved in an ArrayList sending to a Freemarker template. Could you please help me? Thanks a lot. The error: freemarker.log._JULLoggerFactory$JULLogger error SEVERE: Error executing FreeMarker template FreeMarker template error: The following has evaluated to null or missing: ==> item.lat1 [in template "view/result.ftl" at line