linux select 异步聊天程序,比较好
什么是异步通讯?
就是通讯任意一方可以任意发送消息,有消息来到时会收到系统提示去接收消息。
这里要用到select函数。使用步骤如下:
1、设置一个集合变量,用来存放所有要判断的句柄(file descriptors:即我们建立的每个socket、用open打开的每个文件等)
2、把需要判断的句柄加入到集合里
3、设置判断时间
4、开始等待,即select
5、如果在设定的时间内有任何句柄状态变化了就马上返回,并把句柄设置到集合里
服务器端源代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/time.h>
#include <sys/types.h>
#define MAXBUF 1024
/************关于本文档********************************************
*filename: async-server.c
*purpose: 演示网络异步通讯,这是服务器端程序
*wrote by: zhoulifa(zhoulifa@163.com) 周立发(http://zhoulifa.bokee.com)
Linux爱好者 Linux知识传播者 SOHO族 开发者 最擅长C语言
*date time:2007-01-25 21:22
*Note: 任何人可以任意复制代码并运用这些文档,当然包括你的商业用途
* 但请遵循GPL
*Thanks to: Google.com
*Hope:希望越来越多的人贡献自己的力量,为科学技术发展出力
* 科技站在巨人的肩膀上进步更快!感谢有开源前辈的贡献!
*********************************************************************/
int main(int argc, char **argv)
{
int sockfd, new_fd;
socklen_t len;
struct sockaddr_in my_addr, their_addr;
unsigned int myport, lisnum;
char buf[MAXBUF + 1];
fd_set rfds;
struct timeval tv;
int retval, maxfd = -1;
if (argv[1])
myport = atoi(argv[1]);
else
myport = 7838;
if (argv[2])
&nbs
相关文档:
linux 小技巧
前言:因为用Linux的时间越来越长,所需要做的事也越来越多,效率成了我必需突破的瓶颈。在此总结一下这段时间用过的一些好的Linux技巧。以后时常补充这样自己要用的时候就很方便了。 Author:Ajian[文本处理]1、 ...
前言:因为用Linux的时间越来越长,所需要做的事也越来越多,效率成了我必需突破的瓶颈。 ......
1 ChinaUnix
网址: http://www.chinaunix.net
描述: C版块和shell版块很不错
C/C++论坛:http://bbs.chinaunix.net/forumdisplay.php?fid=23
shell论坛:http://bbs.chinaunix.net/forumdisplay.php?fid=24
man文档:http://man.chinaunix ......
bool InstertNode(string& szFileName)
{
TiXmlDocument myDocument(szFileName);
bool loadOkay = myDocument.LoadFile();
if(loadOkay == false)
return false;
//获得根元素
TiXmlElement *r ......
用惯了Windows平台开发工具的人,转到Linux平台上肯定有一个适应的过程。
Windows下面直接使用VS20....等等,配合MSDN文档,开发查询轻松自如。
而Linux平台,由于种类繁多没有像MSDN这样全面的技术文档,对于技术资料的查询就要依靠
[root@localhost]#MAN [函数名]
的方式来查询。大部分的C++函数时可以查询到得,但是 ......
一.linux理论知识
1.计算机基本理论;2.CPU体系结构;3.内存管理;4.文件系统;5.进程调度;6.Linux常用操作。
二.linux驱动知识
1.i2c驱动添加使用 2.spi驱动添加和读写 &n ......