unp笔记一 网络编程基础
来源:互联网 发布:程序员客栈 专职 编辑:程序博客网 时间:2024/06/13 23:07
这几天一直看不下书啊,也没有学习的动力,闲着无聊,还是总结下unp前面几章的知识。
1、简介
PDU:协议数据单元,在网络各层中交换的信息单元就叫PDU。例如TCP层的PDU就是tcp分节。
应用层实体之间交换的PDU为应用数据。
对TCP应用进程来说,交换的是没有长度限制的单个双向字节流。TCP层会自己把收到的字节流(从应用层收到的)进行分割,这功能由TCP自己实现。
对UDP应用进程来说,交换的是其长度不超过UDP发送缓冲区大小的单个记录。UDP层有多少就收多少。
Stevens很注意错误处理,这是个优点!!!
UNIX errno值,一般来说,系统调用出错,在返回出错值得同时会置errno的值,所以通过查看errno的值可以确定具体错误。
可以直接使用IP层、数据链路层进行应用编程。
标准的统一 :POSIX与开放团体组织走向一起。干脆就叫POSIX标准。
2、TCP、UDP
SCTP就先不管了
TCP是字节流协议,没有任何记录边界!!!没有记录边界!
TCP终止连接的TIME_WAIT状态。
3、套接字编程简介
地址结构
值结果参数 内核到用户进程
字节序
4、基本TCP套接字编程
各个函数的了解
socket:返回描述符,它具有和其他UNIX描述符一样的特性。进程调用socket,内核会创建一个相应的数据结构,即在进程表表项的一个数组的下标。(有点绕口,书上这么说的)file结构、socket结构和inpcb结构是一起分配和连接起来。
connect:调用connect指的是连接到某某地址去吧。如果调用前没有绑定地址,内核会自己确定源IP和源端口。如果是TCP的话,激发三次握手过程。如果是UDP,会记录外部地址。
bind:
listen:是非阻塞函数,执行成功就返回0,成功并不是指有连接来,而是开始监听,所以该函数是非阻塞的。
accept:返回内核自动生成的全新套接字,如果已连接的队列为空,则进程投入睡眠(假定套接字为默认的阻塞方式)。
- unp笔记一 网络编程基础
- unix 网络编程 卷一(unp.h)
- UNP《网络编程》笔记 第一章 简介
- UNIX网络编程(一)-unp.h文件的编译
- python网络基础编程笔记(一)
- 网络编程笔记一:基础入门
- UNP函数笔记一: 套接字编程简介
- UNP卷一学习笔记:基本UDP套接字编程
- 《Python网络编程基础》笔记(一)----底层网络
- 《Python网络编程基础》笔记(一)----底层网络
- unp笔记五 udp编程
- 网络编程基础一
- 网络编程基础一
- unix网络编程(UNP),unp.h生成config.h
- unp.h及网络编程UNP所有代码的下载
- Unix网络编程基础学习笔记一(地址结构相关)
- java学习笔记--------java网络编程基础一
- UNP(一):网络编程角度下的TCP、UDP协议
- hdu1159
- VS2008自动添加ActiveX插件的MFC类
- 教你快速开发自己的微信账号
- windows sound develop
- hdu 4941
- unp笔记一 网络编程基础
- hdu 4941 Magical Forest(hash映射)
- 71道经典Android面试题和答案--重要知识点都涉及到了
- OpenCV2.4版本的camshiftdemo.cpp的详细注释
- dlmalloc 简析
- poj2777 线段树+位运算
- HDOJ 题目1102Constructing Roads(简单最小生成树,kruskal)
- 最好的微信公众平台接口
- js将js数组或者对象转换成json字符串