本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.只让你进程调用 accept,然后把所接受的已连接套接字“传递”给某个子进程。
这样做就不用因为所有子进程都调用 accept 而需提供上锁保护
2.父进程必须跟踪子进程的忙闲状态,以便给空闲子进程传递新的套接字
typedef struct {
pid_t ...
分类:
其他好文 时间:
2014-08-26 13:46:56
阅读次数:
154
listen函数的定义如下所示:
#include
int accept(int sockfd, struct sockaddr * restrict addr, socklen_t *restrict len);
返回值:若成功则返回文件(套接字)描述符,若出错则返回-1
int listen(int sockfd, int backlog);返回值:若成功则返回0;若出错则返回-1...
分类:
其他好文 时间:
2014-08-12 00:47:03
阅读次数:
242
1.迭代服务器模型 1.1 迭代服务器是处理多个请求时一种最简单直接的思路,即使用while循环,它不具有并发能力,即必须一个一个的处理客户的请求。 1.2 程序示例。#include "def.h"int listenfd_init(); //返回一个处于监听状态的套接字描述符void do...
分类:
编程语言 时间:
2014-07-31 02:18:25
阅读次数:
365
recv函数int recv( SOCKET s, char FAR *buf, int len, int flags );不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据。该函数的第一个参数指定接收端套接字描述符;第二个参数指明一个缓冲区,该缓冲区用来存放recv函数接收到...
分类:
其他好文 时间:
2014-07-29 21:00:43
阅读次数:
237
套接字是通信端点的抽象。文件描述符用open函数创建,而套接字描述符用socket函数创建。socket函数原型如下:
int socket(int domain, int type, int protocol);
// 返回值:成功返回套接字描述符,失败返回-1
domain域确定通信特性,不同的域表示地址的格式不同,表示域的常数以AF开头,表示地址族(address family)...
分类:
系统相关 时间:
2014-07-08 16:34:18
阅读次数:
333
执行网络I/O,一个进程必须做的第一件事就是调用socket函数,指定期望的通信协议类型。
#include
int socket(int family, int type, int protocol);
/*返回值:若成功则为非负描述符,若出错则为-1*/
socket函数成功时返回一个小的非负整数值,它与文件描述符类似,把它称为套接字描述符,简称sockfd。family参数指明协议...
分类:
其他好文 时间:
2014-06-22 15:40:10
阅读次数:
301
二、网络传输模块
模块对应代码命名空间 (namespace ZPNetwork)
模块对应代码存储文件夹 (\ZoomPipeline_FuncSvr\network)
2.1 模块结构
网络传输模块负责管理监听器,并根据各个传输线程目前的负荷,把新申请接入的客户套接字描述符引导到最空闲的传输线程中执行“接受连接(Accept)”操作。该模块由如下几个类组成。...
分类:
其他好文 时间:
2014-05-18 06:44:03
阅读次数:
304