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
相关文档:
bool RemoveNode(string& szFileName)
{
TiXmlDocument myDocument(szFileName);
bool loadOkay = myDocument.LoadFile();
if(loadOkay == false)
return false;
//获得根元素
TiXmlElement *rootElemen ......
1.关机
init 0或者 halt poweroff
重新启动
init 6或者 reboot
关机的时候通知下其他用户 Shutdown
shutdown -r +5 (五分钟之后关机)
2.在Linux下可以使用长文件或目录名,需要遵循的规则
/ 禁止使用
后缀是没有实际意义的
3.touch a 建立一个文件
4.shell命令的一般格式
$cmd ......
这是一个在linux命令行下使用VBE进行绘图的测试程序
用libx86实现在real mode下的vesa模式设定和图形显示功能
实现在linux的保护模式, 文本命令行下切换到vesa模式,再画个十字的坐标,再几个圆圈^_^
修改自vbespy
安装运行:
直接运令行运行 "make", 编译成功后
......
复习一下,免得忘记。
显示进程属性- ps 命令
ps 命令:该命令是最基本同时也是非常强大的进程查看命令,用于报告进程标识、用户、CPU 时间消耗以及其他属性。利用它可以确定有哪些进程正在运行及运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等。ps 命令可以监控后台进程的工作情况,因 ......