Unix 网络编程卷1

Chapter 1

这里写图片描述

这里写图片描述

Chapter 2

TCP

服务器被动打开(passive open):socketbindlisten。客户端通过socketconnect主动打开(active open)。acceptconnect是阻塞的

这里写图片描述

这里写图片描述

UDP

  • UDP可以是全双工的

Chapter 3

字节排序函数

低序字节存储在起始地址:小端(little-endian)字节序;高序字节存储在起始地址:大端(big-endian)字节序。网际协议使用大端字节序来传送这些多字节整数。

这里写图片描述

这里写图片描述

字节操纵函数


#include<string.h>

// 把目标字节串指定数目的字节置为c
void *memset(void *dest, int c, size_t len);

// 将指定数目的字节从原字节移到目标字符串
void *memcpy(void *dest, const void *src, size_t nbytes);

// 比较字节串,相同返回0
int memcpy(const void *ptrl, const void *ptr2, size_t nbytes);

readnwritenreadline函数

字节流套接字调用read或者write输入或者输出的字节数可能比请求的数量少,然而这不是出错的状态,这是因为内核中用于套接字的缓冲区肯能已经达到了极限。

基于文本行的网络协议:SMTP、HTTP、FTP等

Chapter 4

这里写图片描述

这里写图片描述

forkexec函数

#include<unistd.h>

//子进程返回0,父进程返回子进程ID
pid_t fork(void);

//exec把当前进程映像替换成新的程序文件,进程ID不变

6个exec函数不同:

这里写图片描述

并发服务器轮廓

这里写图片描述

为什么父进程对connfd调用close没有终止它与客户的链接呢?因为每个文件或套接字都有一个引用计数:

这里写图片描述

大多数TCP服务器是并发的,它们为每个待处理的客户链接调用fork派生一个子进程。大多数UDP服务器却是迭代的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值