2013年8月3日

UNIX网络编程——原始套接字的魔力【上】

摘要: 基于原始套接字编程 在开发面向连接的TCP和面向无连接的UDP程序时,我们所关心的核心问题在于数据收发层面,数据的传输特性由TCP或UDP来保证: 也就是说,对于TCP或UDP的程序开发,焦点在Data字段,我们没法直接对TCP或UDP头部字段进行赤... 阅读全文

posted @ 2013-08-03 22:38 疯子123 阅读(219) 评论(0) 推荐(0) 编辑

UNIX网络编程——原始套接字SOCK_RAW

摘要: 实际上,我们常用的网络编程都是在应用层的报文的收发操作,也就是大多数程序员接触到的流式套接字(SOCK_STREAM)和数据包式套接字(SOCK_DGRAM)。而这些数据包都是由系统提供的协议栈实现,用户只需要填充应用层报文即可,由系统完成底层报文头的填充并发送。然而在某些情况下需要... 阅读全文

posted @ 2013-08-03 18:08 疯子123 阅读(334) 评论(0) 推荐(0) 编辑

UNIX环境高级编程——Linux终端设备详解

摘要: 终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是Teletype的缩写。Teletype是最早出现的一种终端设备,很象电传打字机(或者说就是),是由Teletype公司生产的。在Linux系统的设备特殊文件目录/dev/下,终端特殊设备文件一般有以下... 阅读全文

posted @ 2013-08-03 16:25 疯子123 阅读(236) 评论(0) 推荐(0) 编辑

UNIX网络编程——网络IPC:套接字

摘要: Contents套接字接口套接字描述符寻址字节序地址格式地址查询绑定地址建立连接数据传输套接字选项带外数据UNIX域套接字使用套接字的示例面向连接的ruptime无连接的ruptime套接字接口 套接字接口是一组用来结合UNIX I/O函数进行进程间通信的函数,大多数系统上都实现了它,... 阅读全文

posted @ 2013-08-03 15:28 疯子123 阅读(254) 评论(0) 推荐(0) 编辑

UNIX网络编程——Socket通信原理和实践

摘要: 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数... 阅读全文

posted @ 2013-08-03 14:38 疯子123 阅读(437) 评论(0) 推荐(0) 编辑

UNIX环境高级编程——单实例的守护进程

摘要: #include #include #include #include #include #include #include #include #include #include /* 创建守护进程函数 */int daemonize(){ int childpid, fd, fdtablesiz... 阅读全文

posted @ 2013-08-03 03:08 疯子123 阅读(116) 评论(0) 推荐(0) 编辑

UNIX环境高级编程——初始化一个守护进程

摘要: #include #include #include #include #include #include #include #include #include /* 创建守护进程函数 */int daemonize(){ int childpid, fd, fdtablesize; int er... 阅读全文

posted @ 2013-08-03 03:05 疯子123 阅读(150) 评论(0) 推荐(0) 编辑

UNIX环境高级编程——创建孤儿进程

摘要: /* 创建孤儿进程 父进程终止后,向子进程发送挂断信号,又接着发送继续信号。 */ #include #include #include #include #include #include #include /* 处理接受到的挂断信号 */ stati... 阅读全文

posted @ 2013-08-03 02:44 疯子123 阅读(137) 评论(0) 推荐(0) 编辑

UNIX环境高级编程——实现uid to name

摘要: setpwent()用来将getpwent()的读写地址指回文件开头,即从头读取密码文件中的账号数据。strcut passwd * getpwent(void); getpwent()用来从密码文件(/etc/passwd)中读取一项用户数据,该用户的数据以passwd... 阅读全文

posted @ 2013-08-03 02:27 疯子123 阅读(151) 评论(0) 推荐(0) 编辑

UNIX环境高级编程——标准IO-实现查看所有用户

摘要: #include #include #include #include int main(int argc, char *argv[]){ char szBuf[512]; char szName[512]; FILE *f = fopen("/etc/passwd","r"); memset(s... 阅读全文

posted @ 2013-08-03 02:03 疯子123 阅读(144) 评论(0) 推荐(0) 编辑

UNIX环境高级编程——环境变量表读取/添加/修改/删除

摘要: #include #include #include int main(){ char* pValue; pValue = getenv("HOME"); // 起始目录(主目录) printf("$HOME = %s\n", pValue); // 在主目录下建立a.txt文件 char sz... 阅读全文

posted @ 2013-08-03 01:56 疯子123 阅读(148) 评论(0) 推荐(0) 编辑

UNIX网络编程——进程间通信概述

摘要: 一、顺序程序与并发程序特征顺序程序特征顺序性封闭性:(运行环境的封闭性)确定性可再现性并发程序特征共享性并发性随机性二、进程互斥1、由于各进程要求共享资源,而且有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥。2、系统中某些资源一次只允许一个进程使用,称这样的资源为临... 阅读全文

posted @ 2013-08-03 00:20 疯子123 阅读(212) 评论(0) 推荐(0) 编辑

UNIX网络编程——通过UNIX域套接字传递描述符和 sendmsg/recvmsg 函数

摘要: 在前面我们介绍了UNIX域套接字编程,更重要的一点是UNIX域套接字可以在同一台主机上各进程之间传递文件描述符。 下面先来看两个函数:#include #include ssize_t sendmsg(int sockfd, const struct msghdr *ms... 阅读全文

posted @ 2013-08-03 00:09 疯子123 阅读(215) 评论(0) 推荐(0) 编辑

导航