
网络编程
文章平均质量分 78
拖拉机拖拉机
这个作者很懒,什么都没留下…
展开
-
socket通信之socketpair
这篇文章主要介绍的是socketpair()函数,至于函数的详细介绍,大家可以参看:man socketpair 介绍的还是可以的。下面是中文简介:函数原型#include #include int socketpair(int d, int type, int protocol, int sv[2]); 参数介绍:socketpair()函数建立一对匿名的已经连接的套原创 2012-10-05 18:04:44 · 2185 阅读 · 0 评论 -
socket通信之最简单的I/O 多路复用
在Linux/UNIX 下,有下面这五种I/O 操作方式:1.阻塞 I/O2. 非阻塞 I/O3.I/O 多路复用4.信号驱动 I/O(SIGIO)5.异步 I/O至于每种模式的含义自己去查吧,百度百科、wiki百科介绍的都很详细,要是介绍的话,我也就是抄袭过来,要学会使用搜索引擎~~还记得上一篇文章的例子吧,那就是基于阻塞I/O模式的,简单的不能再简单的socket通原创 2012-10-07 13:22:02 · 4053 阅读 · 0 评论 -
fd_set解析
用到select,就难免不了要接触一下几个宏 fd_set set; FD_ZERO(&set); FD_SET(read_fd,&set); select(MAX_NUM+1,&set,NULL,NULL,NULL); if(FD_ISSET(read_fd,set){……}这几个经常是按这种次序组合出现的,之前虽然也用过,但说实话,也就是用,根本不知道怎么原创 2012-11-13 23:23:34 · 7083 阅读 · 2 评论 -
socket通信之完整的多路复用
前一篇文章是介绍的select一个极为简单的用法,这篇将select和socket结合使用,完成单线程多用户连接,用户退出后,可用连接自动+1,。客户端同http://blog.youkuaiyun.com/xluren/article/details/8043484 中的客户端服务器端代码如下:#include #include #include #include #include #原创 2012-10-07 14:46:58 · 3767 阅读 · 0 评论 -
poll函数实现多路复用
结构体pollfdstruct pollfd{int fd; //file descriptorshort event; //event of interest on fdshort reven; //event that occurred on fd}每一个pollfd结构体指定了一个被监视的文件描述符,可以传递多个结构体,指示pol原创 2012-11-21 09:26:03 · 1630 阅读 · 0 评论 -
socket服务器类型
在网络程序里面,一般的来说都是许多客户机对应一个服务器.为了处理客户机的请求, 对服务端的程序就提出了特殊的要求.我们学习一下目前最常用的服务器模型. 循环服务器:循环服务器在同一个时刻只可以响应一个客户端的请求 并发服务器:并发服务器在同一个时刻可以响应多个客户端的请求循环服务器 循环服务器:UDP服务器 UDP循环服务器的实现非常简单:UDP服务器每次从套接字上读取原创 2012-11-12 15:42:04 · 1000 阅读 · 0 评论 -
socket通信趣解
socket通信真的好麻烦,记起来也特麻烦,就想了这么个办法,很形象,穿插着重要的函数,应该会方便点。源代码及部分函数的说明 http://blog.youkuaiyun.com/xluren/article/details/8043484#t3下图是socket通信的服务器端,我把他比作要开电话亭的商家,也许有点欠妥,纯粹为了记忆。下面是client端,把他比作打电话的人原创 2012-11-11 23:02:48 · 1449 阅读 · 0 评论 -
socket通信之最简单的socket通信
套接字有三种类型流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM)及原始套接字。1.流式套接字提供面向连接、可靠的数据传输服务,数据按字节流、按顺序收发,保证在传输过程中无丢失、无冗余。TCP协议支持该套接字。2.数据报套接字,提供面向无连接的服务,数据收发无序,不能保证数据的准确到达。UDP协议支持该套接字。3.原始套接字原始套接字主要用于一些协议的开发,原创 2012-10-06 17:41:01 · 7239 阅读 · 1 评论 -
Linux通信之管道
管道通信之普通管道通信,只能在父子进程之间,单向,思想是,1.定义管道标识符,2.创建管道,3.创建进程,开始通信具体的代码如下:#include #include #include #include #include #include #include int main(){ int pipe_fd[2]; pid_t pid; char bu原创 2012-10-02 15:12:17 · 815 阅读 · 0 评论 -
linux通信之信号量
1.semget()使用semget()函数来建立新的信号量对象或者获取已有对象的标识符。它在linux/sem.h中的函数声明是这样的:系统调用: semget()函数声明: int semget ( key_t key, int nsems, int semflg);返回值: semaphore set IPC identifier on success-1原创 2012-10-04 17:03:12 · 2069 阅读 · 0 评论 -
Linux通信之消息队列
Linux通信学习继续前进,下面是部分的函数说明,我摘抄了http://www.uml.org.cn/c++/200910192.asp 的函数介绍,写的真的很详细,特别是在size_t msg_sz这里,专门指明了不包括type,由于使用同学的电脑,没有代码,后续会补上。现在我们来讨论第三种也是最后一种System V IPV工具:消息队列。在许多方面看来,消息队列类似于有名管道,但是却没有原创 2012-10-02 15:58:57 · 1264 阅读 · 0 评论 -
Linux通信之共享内存
共享内存有以下几个关键的函数,写在这里,记一下。1)用ftok()函数获得一个ID号.应用说明:在IPC中,我们经常用用key_t的值来创建或者打开信号量,共享内存和消息队列。函数原型:key_t ftok(const char *pathname, int proj_id);Keys:1)pathname一定要在系统中存在并且进程能够访问的3)proj_id是一个原创 2012-10-02 15:06:38 · 1045 阅读 · 0 评论 -
Python gevent vs thread vs sequence
Core Solo原创 2014-11-04 12:03:32 · 1553 阅读 · 0 评论