转载请注明出处:http://www.cnblogs.com/kevince/p/3891033.html By Kevince最近在看linux网络编程相关,现学现卖,就写了一个简易的C/S即时通信程序,代码如下:head.h 1 /*头文件,client和server编译时都需要使用*/ 2 #...
分类:
编程语言 时间:
2014-08-05 00:04:58
阅读次数:
339
0.春阳语录,代码嵌套三层以上就是一坨垃圾。因此良好的编程风格从封装开始。1.封装select服务器模型 1.1 如何封装?将select需要的数据结构都封装成结构体,通过参数在函数之间传递,将固定的操作封装成相应的函数。 1.2 封装后的程序: 1.2.1 封装的头文件 select_t...
分类:
系统相关 时间:
2014-07-31 23:23:40
阅读次数:
442
c语言:基础篇1.《写给大家看的C语言书(第2版)》原书名: Absolute Beginner's Guide to C (2nd Edition)原出版社: Sams作者: (美)Greg Perry [作译者介绍]译者: 谢晓钢 刘艳娟丛书名: 图灵程序设计丛书 C/C++系列出版社:人民邮电...
分类:
系统相关 时间:
2014-07-31 19:35:47
阅读次数:
344
1.迭代服务器模型 1.1 迭代服务器是处理多个请求时一种最简单直接的思路,即使用while循环,它不具有并发能力,即必须一个一个的处理客户的请求。 1.2 程序示例。#include "def.h"int listenfd_init(); //返回一个处于监听状态的套接字描述符void do...
分类:
编程语言 时间:
2014-07-31 02:18:25
阅读次数:
365
1.select 模型 1.1 select 函数原型如下,其中 nfds 表示的描述符的最大值加1(因为这里是左闭右开区间),中间三个参数分别表示要监听的不同类型描述符的集合,timeout用来表示轮询的时间间隔,这里用NULL表示无限等待。 1.2 使用 select函数编写客户端程...
分类:
系统相关 时间:
2014-07-30 00:57:12
阅读次数:
476
进程线程分配方式简述下常见的进程和线程分配方式:(好吧,我仅仅是举几个样例作为笔记。。。并发的水太深了,不敢妄谈。。。)1、进程线程预分配简言之,当I/O开销大于计算开销且并发量较大时,为了节省每次都要创建和销毁进程和线程的开销。能够在请求到达前预先进行分配。2、进程线程延迟分配预分配节省了处理时的...
分类:
编程语言 时间:
2014-07-24 22:15:12
阅读次数:
283
1.一个简单的服务器时间获取程序 服务器和客户端采用UDP通信的方式,来编写一个简单的时间获取应用. 把过程大致理顺一下,首先是服务器端的编写,使用的是迭代的方式,没有并发 先创建一个socket而后bind服务器,绑定之后就可以创建一个循环来接收和发送 信息了,以达到和客户端之间的通信.#incl...
分类:
系统相关 时间:
2014-07-21 08:39:51
阅读次数:
247
一、首先是服务器的建立 首先是一个信号终止程序,发信号ctrl+c终止程序,而是是初始化网络通信. 创建一个描述符负责绑定服务器和监听服务器接收客户端的消息. socket()->sockaddr_in->bind->listen(准备就绪) 开始接收客户端消息.start()函数 首先是声明一个结...
分类:
系统相关 时间:
2014-07-21 00:05:43
阅读次数:
420
一、套接字的地址结构. IPV4套接字地址结构通常也称为"网际套接字地址结构",它以sockaddr_in 命名;POSIX定义如下:#include struct in_addr{ unsigned long s_addr; /*32-bit IPv4 address ...
分类:
系统相关 时间:
2014-07-19 09:34:33
阅读次数:
408