采集端主要框架: 主程序、图像采集子系统、传输子系统、图像编码压缩子系统 监控端主要框架: 主程序、传输子系统、图像解码子系统、图像显示子系统 针对采集端来说: 主程序工作流程:(采用epoll架构) 1.利用epoll_create函数创建epoll 2.将加入等待事件的工作下放到传输子系统和采集 ...
分类:
其他好文 时间:
2017-05-23 19:46:35
阅读次数:
158
开发高性能网络程序时。windows开发人员们言必称iocp,linux开发人员们则言必称epoll。大家都明确epoll是一种IO多路复用技术,能够很高效的处理数以百万计的socket句柄,比起曾经的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快,那么。它究竟为什么能够 ...
分类:
系统相关 时间:
2017-05-23 19:38:56
阅读次数:
254
libevent能够处理三种事件: I/O、信号、定时器。 涉及两个数据结构: event,表示一个事件 event_base,管理所有事件 本文主要介绍event_base,结构如下: evsel主要描述libevent的底层实现机制,linux系统对应epoll: ...
分类:
其他好文 时间:
2017-05-23 11:24:07
阅读次数:
184
一、为什么要产生I/O多路复用?两个主机之间通信,主机A和主机B都需要开启socket,主机A首先要等待客户端来进行连接,这是会发起一个recvfrom的系统调用,如果主机B一直没有去连接主机A,没有给主机A发送任何数据,进程就会被阻塞,无法去做其他的事情(默认的阻塞I/O模型),..
分类:
编程语言 时间:
2017-05-22 13:27:06
阅读次数:
247
I/O复用: 在一个进程或者多个进程的需要多个I/O,不能阻塞在一个I/O上而停止不前,而是用到I/O复用。进程预先告知内核需要哪些I/O描述符,内核一旦发现指定的一个或多个I/O条件就绪,则通知进程进行相应操作,这就是I/O复用。 使用场合: 1、客户处理多个描述符(交互式输入和网络套接字) 2、 ...
分类:
其他好文 时间:
2017-05-21 17:46:46
阅读次数:
192
#!/usr/bin/env python # -*- coding: utf8 -*- import socket, select EOL1 = b'/r/n' EOL2 = b'/r/n/r/n' # 拼接成的response response = b'HTTP/1.0 200 OK/r/nDa... ...
分类:
编程语言 时间:
2017-05-20 01:12:10
阅读次数:
309
截止目前,笔者在博客园上面已经发表了3篇关于网络下载的文章,这三篇博客实现了基于socket的http多线程远程断点下载实用程序。笔者打算在此基础上开发出一款分布式文件管理实用程序,截止目前,已经实现了 服务端/客户端 的上传、下载部分的功能逻辑。涉及到的知识点包括线程池技术、linux epoll... ...
分类:
编程语言 时间:
2017-05-20 01:11:35
阅读次数:
286
简介: 1.系统使用TCP来实现 2.服务端 ctrl+d 能够使当前的客户端退出,但是服务端能够继续运行,并等待,响应其他的客户端的请求。ctrl+c 结束服务端进程 3.ctrl+c 结束客户端进程 4.服务器主要是用 epoll 模型实现,支持高并发 <测试并可以正常运行> 系统版本:Linu ...
分类:
系统相关 时间:
2017-05-19 21:08:20
阅读次数:
188
socket也是io的一种,阻塞的socket操作包括: 输入:recv(), recvfrom(),缓冲区为空时阻塞 输出:send(), sendto(),缓冲区为空时阻塞 接受:accept(),无连接时阻塞 连接:connect(),无响应时阻塞,对TCP连接而言会阻塞一个服务器往返时间 解 ...
分类:
系统相关 时间:
2017-05-18 21:34:51
阅读次数:
212