unix编程
文章平均质量分 50
gxdwrj
这个作者很懒,什么都没留下…
展开
-
Hash表的扩容(转载)
Hash表(Hash Table) hash表实际上由size个的桶组成一个桶数组table[0...size-1] 。当一个对象经过哈希之后,得到一个相应的value , 于是我们把这个对象放到桶table[ value ]中。当一个桶中有多个对象时,我们把桶中的对象组织成为一个链表。这在冲突处理上称之为拉链法。 负载因子(load factor)原创 2014-10-09 23:45:59 · 1639 阅读 · 0 评论 -
图解TCP/IP协议
本文通过两个图来梳理TCP-IP协议相关知识。TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道。如图1所示,给出了TCP通信过程的示意图。 图1 TCP 三次握手四次挥手 图1主要包括三部分:建立连接、传输数据、断开连接。 1)建立TCP连接很简单,通过三次握手便可建立连接。 2)建立好连接原创 2014-09-24 10:44:35 · 2550 阅读 · 3 评论 -
TCP是如何通过滑动窗口协议实现流量控制的?
T C P使用一种窗口(w i n d o w)机制来控制数据流。当一个连接建立时,连接的每一端分配一个缓冲区来保存输入的数据,并将缓冲区的尺寸发送给另一端。当数据到达时,接收方发送确认,其中包含了自己剩余的缓冲区尺寸。剩余的缓冲区空间的大小被称为窗口( w i n d o w) ,指出窗口大小的通知称为窗口通告(window advertisement) 。接收方在发送的每一确认中都含有一个窗口原创 2014-09-27 22:08:31 · 1937 阅读 · 0 评论 -
linux系统用户态和内核态及其通信
究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上,先看一个例子: 1)例子 C代码 1. void testfork(){ 2. if(0 = = fork()){ 3. printf(“create new process原创 2014-09-23 15:41:36 · 833 阅读 · 0 评论 -
《UNIX环境高级编程》中apue.h的问题与《unix网络编程》中unp.h的问题
《UNIX环境高级编程》中apue.h的问题 运行程序清单1-1(列出一个目录中的所有文件) 提示 "错误:apue.h:没有那个文件或目录". 很是受打击,果断google解决之。 apue.h是作者自定义的一个头文件,包括程序所需的常用头文件及出错处理函数。所以因该将它放入系统头文件中(Linux下是 /usr/include),这样gcc编译器就可以找到它了。原创 2013-08-19 19:37:05 · 761 阅读 · 0 评论 -
无连接的服务器编程(UDP)
网络进程之间的通信时通过套接字来实现的,套接字是通信端点的抽象,与应用程序使用文件描述符是一样的,本文讲解一下基于UDP的服务器程序的编写,具体步骤如下: 1、 创建套接字。 创建套接字需要调用socket函数,socket函数在文件中,函数原型为: Int socket (int domain, int type, intprotocol);原创 2013-11-24 16:06:01 · 1060 阅读 · 0 评论 -
基于无连接(UDP协议)的服务器与客户端编程实例
client.c #include #include #include #include #include #include #include #include #include #include #include #define PORT 8999 #define DESIP "127.0.0.1" #define MAXSIZE 4096 int原创 2013-11-24 16:44:12 · 989 阅读 · 0 评论 -
Qtcreator中常用快捷键总结
Qtcreator中常用快捷键总结 F1 查看帮助 F2 跳转到函数定义(和Ctrl+鼠标左键一样的效果) Shift+F2 声明和定义之间切换 F4 头文件和源文件之间切换 Ctrl+1 欢迎模式 Ctrl+2 编辑模式 Ctrl+3 调试模式 Ctrl+4 项目设置原创 2015-03-14 21:34:54 · 726 阅读 · 0 评论