易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux 惊群现象

        在linux中,惊群现象已经消失了的,我们可以看   http://simohayha.javaeye.com/blog/561424 ,但是当我们在开发服务器时候,需要使用epoll,发现一个问题,就是当一个请求过来的时候,发现有的时候被唤起的进程不止一个,看下面的程序:#include <sys/socket.h>
#include <sys/epoll.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <pthread.h>
#include <errno.h>
#include <unistd.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <errno.h>
#define KEY 1234
#define SIZE 1024
#define PORT 9999
#define MAXFDS 5000
#define EVENTSIZE 100
void process();
int fd, cfd,opt=1;
int shmid;
char *shmaddr;
struct shmid_ds buf;
int num = 0 ;
int main(int argc, char *argv[])
{
shmid = shmget(KEY,SIZE,IPC_CREAT|0600); /* 建立共享内存 */
if(shmid == -1){
printf("create share memory failed\n");
}
shmaddr = (char *)shmat(shmid,NULL,0);
if(shmaddr == (void *)-1){
printf("connect to the share memory failed: %s",strerror(errno));
return 0;
}
strcpy(shmaddr,"1\n");

struct sockaddr_in sin, cin;
socklen_t sin_len = sizeof(struct sockaddr_in);
if ((fd = socket(AF_INET, SOCK_STREAM, 0)) <= 0)
{
fprintf(stderr, "socket failed\n");
return -1;
}
memset(&sin, 0, sizeof(struct sockaddr_in));
sin.sin_family = AF_INET;
sin.sin_port = htons((short)(PORT));
sin.sin_addr.s_addr = INADDR_ANY;
if (bind(fd, (struct sockaddr *)&sin, sizeof(sin)) != 0)
{
fprintf(stderr, "bind failed\n");
return -1;
}
if (listen(fd, 32) != 0)
{
fprintf(stderr, "listen failed\n");
return -1;
}
int i ;
for(i = 0; i < 2; i++)
{
int pid = fork();
if(pid == 0)
{


相关文档:

【Nutch】Linux下Nutch分布式配置和使用

Linux下Nutch分布式配置和使用
 
目   录
介绍. 2
0 集群网络环境介绍. 2
1 /etc/hosts文件配置. 2
2 SSH无密码验证配置. 2
2.1配置所有节点之间SSH无密码验证. 2
3 JDK安装和Java环境变量配置. 3
3.1 安装 JDK 1.6 3
3.2 Java环境变量配置. 4
4 Hadoop集群配置. 4
5 Hadoop集群启动. 6
6 Nutc ......

GNU/Linux 开发环境 (1)

几周以前,无意中看了我开发Linux服务程序的工作环境搭配这篇文章,忍不住拍了砖,结果作者在回复中激我,要我写个看看。其实看不惯很多人围绕M$的习惯,早已有写点什么的想法,可是没什么时间,也担心不同的想法和自己退步了很多的中文会迷惑有Linux学习热情的同行,更不用说没准还会吓跑别人。为了表示我是从来不吃激将法 ......

windows登陆远程Linux主机的一种途径putty

windows登陆远程Linux主机的一种途径putty-详细安装使用过程
作者:gliethttp
如果你打算在windows下访问另外一台装有Linux的机子,那么推荐使用putty
SSH提供两种级别的安全验证: 一是基于口令的安全验证。只要用户知道自己账号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证用户正在连接的服 ......

linux下字符驱动模块的一般性步骤

这段时间学习字符设备的驱动模块程序,主要是借鉴书籍<linux驱动开发详解>及网络资源,在此,我依据个人的理解,
对现在自己所理解的进行小结。
整体出发一点,应用程序和vfs之间的接口是系统调用,而VFS与磁盘文件系统及普通设备之间的接口是file_operations
结构体成员函数,这个接口体包含对文件进行打开、关闭 ......

Linux常用命令

vi编辑命令
进入编辑模式 --> i (insert) 或者 a (append)
进入命令模式 --> Esc
命令模式常用操作:
删除一行 --> dd
复制一行 --> yy
粘贴 --> p ( yy 和 p 是结合使用)
替换 --> :s/oldwords/newwords 替换当前行 :%s/oldwords/newwords 替换所有
注:特殊字符用"\"转义&n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号