- 博客(12)
- 资源 (2)
- 收藏
- 关注
原创 《TCP/IP网络编程》第11章 进程间通信
11.1 进程间通信的基本概念 进程间通信(InterProcess Communication,IPC)意味着两个不同进程间可以交换数据,为了完成这一点,操作系统中应该提供两个进程可以同时访问的内存空间。1. 对进程间通信的基本理解 只要有两个进程可以同时访问的内存空间,就可以通过此空间交换数据,但进程具有完全独立的内存结构。就连通过fork函数创建的子进程也不会与父进程...
2018-06-26 22:47:01 646
原创 《TCP/IP网络编程》第10章 多进程服务器端
10.1 进程概念及应用1. 两种类型的服务器端 按序处理客户端请求,如果每个客户端的平均服务时间为0.5秒,则第100个客户端会对服务器产生相当大的不满。 所有连接请求的受理时间不超过1秒,但平均服务时间为2~3秒。2. 并发服务器端的实现 同时向多个客户端提供服务的并发服务器端,具有代表性的并发服务器端实现模型和方法: A、多进程服务器: ...
2018-06-26 22:26:57 309 1
原创 《TCP/IP网络编程》第9章 套接字的多种可选项
套接字具有多种特性,这些特性可通过可选项更改。9.1 套接字可选项和I/O缓冲1. 套接字的多种可选项 由上表看出,套接字可选项是分层的。IPPROTO_IP层可选项是IP协议相关事项,IPPROTO_TCP层可选项是TCP协议相关的事项,SOL_SOCKET层是套接字相关的通用可选项。2. getsockopt& setsockopt 可选项的读取(G...
2018-06-26 20:07:07 368 1
原创 《TCP/IP网络编程》第8章 域名(DNS)及网络地址
8.1 域名系统 DNS(DomainName System,域名系统)是对IP地址和域名进行相互转换的系统,其核心是DNS服务器。 域名是赋予服务器端的虚拟地址,而非实际地址。因此,需要将虚拟地址转化为实际地址。 所有计算机中都记录着默认DNS服务器地址,就是通过这个默认DNS服务器得到相应域名的IP地址。 >ping www.baidu.com ping命令...
2018-06-26 19:36:44 256
原创 《TCP/IP网络编程》第7章 优雅地断开套接字连接
本章所有示例代码>>github7.1 基于TCP的半关闭1. 单方面断开连接带来的问题 Linux的close函数(Windows的closesocket函数)意味着完全断开连接。完全断开连接不仅指无法传输数据,而且也不能接收数据。 主机A发送完最后的数据,调用close函数断开了连接,之后主机A无法再接收主机B传输的数据。最终,由主...
2018-06-26 19:27:45 329
原创 《TCP/IP网络编程》第6章 基于UDP的服务器端/客户端
6.1 理解UDP1. UDP套接字的特点 信件的例子。(无法确认对方是否收到、可能发生信件丢失) UDP在结构上比TCP更简洁,UDP不会发送类似ACK的应答消息,也不会像SEQ那样给数据包分配序号。因此,UDP的性能有时比TCP高很多。 流控制是区分UDP和TCP的最重要的标志。2. UDP内部工作原理 UDP最重要的作用就是根据端口号将传到主机...
2018-06-26 19:07:38 162
原创 《TCP/IP网络编程》第5章 基于TCP的服务器端/客户端(2)
5.1 回声客户端的完美实现1. 回声服务器端没有问题,只有客户端有问题。 回声客户端传输的是字符串,而且是通过调用write函数一次性发送的,之后还调用一次read函数,期待着接收自己传输的字符串。2. 回声客户端问题解决方法 解决:因为可以提前确定接收数据的大小,若之前传输了20字节长的字符串,则在接收时循环调用read函数读取20个字节即可。3. ...
2018-06-26 18:34:31 383
原创 《TCP/IP网络编程》第4章 基于TCP的服务器端/客户端(1)
4.1 理解TCP和UDP TCP是TransmissionControl Protocol(传输控制协议)的简写。 以多个标准为依据设计的系统称为开放式系统。 TCP和UDP层以IP层提供的路径信息为基础完成实际的数据传输,故该层又称传输层(Transport)。 IP层是面向消息的、不可靠的协议。只关注1个数据包(数据传输的基本单位)的传输过程。若只利用IP层传输数据,...
2018-06-26 18:27:17 372
原创 《TCP/IP网络编程》第3章 地址族与数据序列
3.1 分配给套接字的IP地址与端口号 IP是InternetProtocol(网络协议)的简写,是为收发网络数据而分配给计算机的值。 端口号并非赋予计算机的值,而是为区分程序中创建的套接字而分配给套接字的序号。1. 网络地址(Internet Address)IPv4 4字节地址族IPv6 16字节地址族 IPv4标准的4字节IP地址分为网络地址和主机(指计算机)地...
2018-06-26 11:20:45 159
原创 《TCP/IP网络编程》第2章 套接字类型与协议设置
第2章 套接字类型与协议设置 2.1 套接字协议及其数据传输特性1. 关于协议(Protocol) 计算机间对话必备通信规则。2. 创建套接字#include <sys/socket>int socket(int domain, int type, int protocol); -domain:套接字中使用的协议族(ProtocolFami...
2018-06-26 10:57:39 172
原创 union联合体与字节序
union联合体与字节序1.union联合体union{ short value; char union_bytes[sizeof(short)];}test;union联合体所有数据成员共享一段内存,后写入的成员数据将覆盖之前的成员数据,成员数据都有相同的首地址。上述代码段的short型数据与char型数组在同一地址空间。2.字节序大端字节序...
2018-06-14 09:10:48 2043
原创 C++中的移位运算
C++中的移位运算逻辑移位:逻辑移位: 逻辑移位 :移出位丢弃,空缺位用“0”填充。 算术移位:算术移位: 算术移位:移出位丢弃,空缺位用“符号位”填充。1、无符号数不论是左移(&lt;&lt;)还是右移(&gt;&gt;)都是逻辑移位2、有符号数左移(&lt;&lt;):逻辑移位右移(&gt;&gt;):算术移位...
2018-06-10 00:47:33 587
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人