- 博客(13)
- 资源 (1)
- 收藏
- 关注
转载 memcpy和memmove的区别。。
memcpy()和memmove()都是C语言中的库函数,在头文件string.h中,其原型分别如下: DE>void *memcpy(void *dst, constvoid *src, size_t count);void *memmove(void *dst, const void *src, size_tcount);DE> 它们都是从s
2013-07-21 18:32:08
428
原创 位段
在redis对象的代码中,有下面这一段,对于位段的语法以前没接触过。记录一下/** Redis 对象*/typedef struct redisObject { // 类型 unsigned type:4; // 不使用(对齐位) unsigned notused:2; // 编码方式 unsigned encoding:4;
2013-07-11 21:21:27
607
原创 非阻塞connect需要处理的问题
套接字状态默认为阻塞的。对于非阻塞的套接字,如果相应的操作没有满足,就会立即返回EWOULDBLOCK错误,使用比较多即TCP的connect函数。阻塞的connect要等到3次握手完成才能返回,因此要完成阻塞的connect,需要一个RTT时间,这个RTT时间波动比较大,在局域网中还好,如果在广域网中可能达到几秒,我们可以再这段时间内继续建立其他链接,或者处理其他工作。这就要使用非阻塞con
2013-07-09 20:42:23
1187
原创 守护进程和inetd超级服务器
守护进程(daemon)一般在系统自举时启动,直到系统关闭时才终止。没有控制终端,在后台运行。编写守护进程的规则:1、首先umask将文件屏蔽字设置为0原因:由父进程继承来的文件屏蔽字,可能屏蔽了读写权限,所以回复初始权限2、fork子进程,然后父进程exit退出,(一般fork两次)原因:子进程继承父进程的进程组ID,但是有新的进程ID,这就保证子进程不是一个进程组的组长
2013-06-26 20:52:06
552
原创 (记录)如何取结构体中成员的偏移
在linux一站式编程里看到一段程序。unix域套接字绑定。#include #include #include #include int main(void){ int fd, size; struct sockaddr_un un; memset(&un, 0, sizeof(un)); un.sun_family = AF_UNIX;
2013-06-24 09:21:54
872
原创 基本UDP套接字编程
UDP是无连接不可靠的数据报协议,非常不同于TCP提供的面向连接的可靠字节流。然而相比于TCP,有些场合更适合使用UDP,使用UDP的一些常见应用程序有:DNS,NFS和SNMP。借用linux一站式编程里的图:一、基本套接字函数udp所用函数:#include ssize_t recvfrom(int sockfd, void *buff, size_t nbytes, i
2013-06-23 14:48:49
558
原创 select和poll程序测试以及结果分析
一、select程序测试首先启动,UNP程序目录下的tcpcliserv/tcpservselect01.c,当然首先需要编译,UNP每个目录下,都写有Makefile文件,make自动编译一下就可以了。然后运行以下客户端程序;#include #include #include #include #include #include #define SERV_PORT
2013-06-23 12:53:55
692
原创 select poll和epoll使用和区别
Linux下可以通过select poll以及epoll来实现IO复用,所谓I/O多路复用机制,就是说通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就 绪),能够通知程序进行相应的读写操作。select和poll本质上没有什么区别,都时采用轮循的方式,来查看描述符就绪,select有最大链接限 制,而poll使用链表,就没有最大描述符限制。epoll是2.6内核对开始对它
2013-06-20 21:28:42
764
原创 I/O模型以及select和poll函数
Unix下可用的5中I/O模型:1. 阻塞式I/O模型2.非阻塞式I/O模型3.I/O复用(select poll epoll):目前linux下几乎都使用epoll。4.信号驱动式I/O(SIGIO)5.异步I/O(POSIX的aio_系列函数)一、阻塞式I/O模型默认情况下,所有套接字都是阻塞的,write,read套接字时都是阻塞的,下图片来源于UNP。
2013-06-18 21:43:22
819
原创 TCP C/S程序示例以及问题
利用前面基本的套接字函数,写一个TCP回射服务器程序。并总结出现的问题,以及解决方法。/* * File: main.cpp * Author: zal * * Created on 2013年6月17日, 下午2:45 */#include #include #include #include #include #include #include #in
2013-06-17 17:38:38
591
原创 Nutch启动shell脚本分析
Nutch笔记1.学习nutch的启动shell脚本分析$NUTCH_HOME/runtiom/deploy/bin/nutch这是nutch在hadoop上运行时的启动脚本,有一个nutch.job 文件,就是把这个文件放在hadoop上运行的如上图所示为nutch1.4的内容,所以在改变nutch 的配置文件后需要Ant重新编译,把.job文件替
2013-06-17 09:16:07
950
原创 基本socket函数和C/S流程
主要讲解一个完整TCP客户、服务器程序所需要的基本套接字函数。所需函数如图4-1所示(图片来源于linux一站式编程):一、基本函数1. socket函数socket可以看成是用户进程与内核网络协议栈的编程接口。socket不仅可以用于本机的进程间通信,在进程间通信,用共享内存的方式是最快的,但是基于socket的通信移植性较好,在目前分布式几乎都是用的基于socket
2013-06-16 21:41:40
668
原创 套接字编程简介
1.Socket地址结构1.1 IPv4 ipv4的套接字地址结构占用20个字节struct in_addr{ in_addr_t s_addr; //32-bit}struct sockaddr_in{ uint8_t sin_len; // 1-byte sa_family_t sin_family; // ui
2013-06-16 21:07:32
460
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人