09 2014 档案

摘要:首先声明,本文的大部分内容来自大牛文章http://blog.csdn.net/haoel/article/details/1948051然后加上自己的一些理解和实验。系统和编译器: ubuntu 14.04 64bits + g++4.8.2虚函数表对C++了解的人都应该知道虚函数(Virtual... 阅读全文
posted @ 2014-09-29 17:14 穆穆兔兔 阅读(744) 评论(0) 推荐(0) 编辑
摘要:1、概论 -- 来自维基的解释/dev/null :在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。在程序员行话,尤其是Unix行话中,/dev/null 被称为位桶(bit bucket)或者黑... 阅读全文
posted @ 2014-09-28 17:42 穆穆兔兔 阅读(221) 评论(0) 推荐(0) 编辑
摘要:参考WINDOWS 网络编程技术 1. 可以对一个端口进行多次绑定,一般这个是不支持使用的; 2. 对于监听套接字,比较特殊。如果你定义了SO_REUSEADDR,并且让两个套接字在同一个端口上进行接听,那么对于由谁来ACCEPT,就会出现歧义。如果你定义个SO_REUSEADDR,只定... 阅读全文
posted @ 2014-09-28 16:18 穆穆兔兔 阅读(3646) 评论(0) 推荐(0) 编辑
摘要:头文件:#include #include 定义函数:void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offsize);函数说明:mmap()用来将某个文件内容映射到内存中,对该内存区域的存取即是... 阅读全文
posted @ 2014-09-28 11:26 穆穆兔兔 阅读(969) 评论(0) 推荐(0) 编辑
摘要:参考http://www.ibm.com/developerworks/cn/linux/l-cn-filelock/ 阅读全文
posted @ 2014-09-28 11:12 穆穆兔兔 阅读(229) 评论(0) 推荐(0) 编辑
摘要:众所周知,TCP建立采用的是三次握手。最近在看论文的时候,突然想到,如果第三个ACK报文丢失了,TCP建立是否还会成功?TCP是如何处理的呢?在网上搜了一圈,看到了这篇文章:三次握手的第三个ACK包丢了——客户端认为连接建立,写数据时,会触发RST当Client端收到Server的SYN+ACK应答... 阅读全文
posted @ 2014-09-28 11:00 穆穆兔兔 阅读(3433) 评论(0) 推荐(0) 编辑
摘要:code 见https://github.com/juniperdiego/Unix-network-programming-of-mine/tree/master/udpserv011 建立socket时使用SOCK_DGRAM 参数,2 在调用send同函数时socklen_t addrlen ... 阅读全文
posted @ 2014-09-24 16:57 穆穆兔兔 阅读(272) 评论(0) 推荐(0) 编辑
摘要:数据类型不一致:stdin类型为FILE*STDIN_FILENO类型为int使用stdin的函数主要有:fread、fwrite、fclose等,基本上都以f开头使用STDIN_FILENO的函数有:read、write、close等可用fileno()转换1.STDIN_FILENO的作用STD... 阅读全文
posted @ 2014-09-23 15:40 穆穆兔兔 阅读(839) 评论(0) 推荐(0) 编辑
摘要:1 getsockopt和setsockopt函数套接字选项粗分为两大基本类型:一是启用或禁止某个特性的二元选项,二是取得并返回特定值的选项,参数都是以指针形式传入的。2 套接字状态下面的套接字选项是从监听套接字继承来的:SO_DEBUF、SO_DONTROUTE、SO_KEEPALIVE、SO... 阅读全文
posted @ 2014-09-23 15:09 穆穆兔兔 阅读(306) 评论(0) 推荐(0) 编辑
摘要:TBD, placeholder 阅读全文
posted @ 2014-09-23 14:53 穆穆兔兔 阅读(164) 评论(0) 推荐(0) 编辑
摘要:pselect函数是由POSIX发明的,如今许多Unix变种都支持它。#include #include #include int pselect(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset, const st... 阅读全文
posted @ 2014-09-23 13:10 穆穆兔兔 阅读(7001) 评论(0) 推荐(0) 编辑
摘要:export LANG="zh_CN.UTF-8" 阅读全文
posted @ 2014-09-19 16:30 穆穆兔兔 阅读(3304) 评论(0) 推荐(0) 编辑
摘要:前提,也是重点是,当接收收据、或者读取数据时,分两步1 等待数据准备好。2 从内核拷贝数据到进程。对于一个network IO 即 socket(这里我们以read举例),它会涉及到两个系统对象,一个是调用这个IO的process (or thread),另一个就是系统内核(kernel)。当一个r... 阅读全文
posted @ 2014-09-18 16:31 穆穆兔兔 阅读(509) 评论(0) 推荐(0) 编辑
摘要:发送方使用该标志通知接收方将所收到的数据全部提交给接收进程。这里的数据包括接收方已经接收放在接收缓存的数据和刚刚收到的PUSH位置一的TCP报文中封装的应用数据。还是看一个简单明了的图示吧: 阅读全文
posted @ 2014-09-18 16:03 穆穆兔兔 阅读(1615) 评论(0) 推荐(0) 编辑
摘要:程序还是https://github.com/juniperdiego/Unix-network-programming-of-mine/tree/master/tcpserv02参考unix网络编程 5.12节我们在serve 启动、client启动后 ,在serve上找到那个和client 交互... 阅读全文
posted @ 2014-09-16 15:39 穆穆兔兔 阅读(364) 评论(0) 推荐(0) 编辑
摘要:慢系统调用(Slow system call)该术语适用于那些可能永远阻塞的系统调用。永远阻塞的系统调用是指调用永远无法返回,多数网络支持函数都属于这一类。如:若没有客户连接到服务器上,那么服务器的accept调用就会一直阻塞。慢系统调用可以被永久阻塞,包括以下几个类别:(1)读写‘慢’设备(包括p... 阅读全文
posted @ 2014-09-15 16:24 穆穆兔兔 阅读(842) 评论(0) 推荐(1) 编辑
摘要:http://blog.sina.com.cn/s/blog_6a1837e90100uhl3.htmlalarm也称为闹钟函数,alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。如果参数seconds为0,则之前设置的闹钟会被取消,并将剩下的时间返回。要... 阅读全文
posted @ 2014-09-12 17:14 穆穆兔兔 阅读(1151) 评论(0) 推荐(0) 编辑
摘要:wait() 和 waitpid()wait() 系统调用挂起调用进程的执行直到有一个孩子终止。调用wait(&status)等价于: waitpid(-1, &status, 0);waitpid() 系统调用挂起调用进程的执行直到由参数pid指定的孩子的状态发生改变。默认情况下,waitp... 阅读全文
posted @ 2014-09-11 13:59 穆穆兔兔 阅读(5200) 评论(0) 推荐(1) 编辑
摘要:个人对unix 网络编程中的代码进行了精简,保留了主要和关键部分。1 tcpserve01 程序见https://github.com/juniperdiego/Unix-network-programming-of-mine/tree/master/tcpserv01 ,没有使用readn 和wr... 阅读全文
posted @ 2014-09-10 09:57 穆穆兔兔 阅读(208) 评论(0) 推荐(0) 编辑
摘要:fopen /open,read/write和fread/fwrite区别转载URL:http://hi.baidu.com/%B9%C8%C9%F1%B2%BB%CB%C0jdp/blog/item/c9cf550bf6c5d1c33ac7639c.htmlfopen /open区别UNIX环境下... 阅读全文
posted @ 2014-09-05 14:39 穆穆兔兔 阅读(886) 评论(0) 推荐(0) 编辑
摘要:假设server和client 已经建立了连接,server调用了close, 发送FIN 段给client(其实不一定会发送FIN段,后面再说),此时server不能再通过socket发送和接收数据,此时client调用read,如果接收到FIN 段会返回0,但client此时还是可以write ... 阅读全文
posted @ 2014-09-04 15:41 穆穆兔兔 阅读(3614) 评论(0) 推荐(0) 编辑
摘要:exec系列函数(execl、execlp、execle、execv、execvp)1带 p 的exec函数:execlp,execvp,表示第一个参数path不用输入完整路径,只有给出命令名即可,它会在环境变量PATH当中查找命令2 execl* 和execv*的区别是,前者一一列出参数,后者用指... 阅读全文
posted @ 2014-09-04 15:18 穆穆兔兔 阅读(781) 评论(0) 推荐(0) 编辑
摘要:http://www.360doc.com/content/13/0702/10/1073512_297069771.shtml原 几种TCP连接中出现RST的情况发表于1年前(2013-05-04 11:40) 阅读(9145)|评论(4) 22人收藏此文章, 我要收藏 赞2TCP RST 网络 ... 阅读全文
posted @ 2014-09-02 13:12 穆穆兔兔 阅读(1210) 评论(0) 推荐(0) 编辑
摘要:在nt平台下,普通应用程序运行在ring3下,操作系统运行于ring0。如果在程序中需要执行一些特权指令的话,程序必须转入到ring0。由于用户程序执行特权指令可能会破坏系统资源,故出于保护和稳定的目的,操作系统通过“门”机制向用户态程序提供必要的服务。在x86种有四种门:中断门、陷阱门、调用门、任... 阅读全文
posted @ 2014-09-01 17:47 穆穆兔兔 阅读(2208) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示