一般阻塞IO通信的服务端,通常有一个独立的Acceptor线程负责监听客户端连接,它接收到客户端连接请求之后为每一个客户端分配一个新的线程来进行处理,处理完成后,通过输出流返回应答给客户端,线程才销毁。
来看一下阻塞IO服务器的代码:
服务器启动类
package com.bio.demo.Server;
import java.io.IOExcepti...
分类:
其他好文 时间:
2014-10-20 21:29:30
阅读次数:
204
转自:http://blog.csdn.net/mjp_mjp/article/details/44060591、多线程中的ACE_Reactor::EventLoop,当在多线程(池)中调用EventLoop时,需要注意,在Acceptor/EventHandler中要使用其中的方法Reactor...
分类:
其他好文 时间:
2014-09-26 01:03:48
阅读次数:
259
下面的程序使用Proactor模式用UDP通信,由于UDP是无连接的,所以这里没有Connector和Acceptor
发送端发送一个复合消息,并打印发送的内容
接收端接收一个复合消息并打印接收到的内容
本例是对ACE自带的example的稍微修改了一下(打印发送和接收的内容,这样更加直观)
发送端:client_main.cpp
#include
#include
#in...
分类:
其他好文 时间:
2014-09-24 13:36:56
阅读次数:
251
自己以前做一个接口服务器时候,这种场景下我的设计是多个线程操作同一个epoll fd。彼时,我的理由是epoll的系列函数是线程安全的。
当然有人不理解为什么会有多个线程操作同一个epoll fd的情形,这里稍微铺陈一下接口服务器的场景。epoll fd有线程1维护,监听服务端端口的socket的accept出来的acceptor(即新的socket fd)也放在这个epoll...
分类:
编程语言 时间:
2014-08-31 14:35:11
阅读次数:
215
运行了rails s 后出现了一下的错误:/.rvm/gems/ruby-1.9.3-p374/gems/eventmachine-1.0.3/lib/eventmachine.rb:526:in `start_tcp_server': no acceptor (port is in use or ...
分类:
其他好文 时间:
2014-08-27 00:12:36
阅读次数:
297
一、Mina框架。
Mina的框架大概是这么个样子:
底层由Java 的NIO 1.0实现 核心架构应该是这样:
内部有三个层次:
I/O Service:实际执行的 I / O ,可以选择现成的Services 如 Acceptor 也可以自己实现。
I/O Filter Chain :由多个过滤器组成的过滤器链,在这个环节将字节过滤或转换为预想的数据结构,反之亦然。
I...
分类:
其他好文 时间:
2014-08-26 21:33:16
阅读次数:
235
Apache mina工作流介绍
apache mina的整体工作流程包含了几个重要的概念和组件,分别是IoService,IoProcessor,IoHandler和IoFilter,在弄清楚整体的运作流程之前需要先介绍下各个组件各自的作用。
IoService
这个是mina请求接受器(Acceptor)以及连接器(Connector)的一个抽象的父类,作用就是提供连接和接受...
分类:
其他好文 时间:
2014-08-22 16:21:39
阅读次数:
300
Multi Paxos基于Basic Paxos,将原来2-Phase过程简化为了1-Phase,从而加快了提交速度。Multi Paxos要求在各个Proposer中有唯一的Leader,并由这个Leader唯一地提交value给各Acceptor进行表决,在系统中仅有一个L...
分类:
其他好文 时间:
2014-08-20 18:13:43
阅读次数:
298
请先参考前文:Paxos算法11.编号处理根据P2c,proposer在提案前会先咨询acceptor查看其批准的最大的编号和value,再决定提交哪个value。之前我们一直强调更高编号的proposal,而没有说明低编号的proposal该怎么处理。|--------低编号(LN)-------...
分类:
其他好文 时间:
2014-08-07 12:12:20
阅读次数:
258
在指定端口监听
下面的程序会在7905端口持续监听,其他的什么也不做
#include
using namespace std;
#include "ace/INET_Addr.h"
#include "ace/Svc_Handler.h"
#include "ace/SOCK_Stream.h"
#include "ace/SOCK_Acceptor.h"
#include "ace/Ac...
分类:
其他好文 时间:
2014-08-04 14:30:07
阅读次数:
256