
网络编程
文章平均质量分 86
不知名小白
计算机专业图像处理研究生,具有独立开发图像处理,模式识别类软件与算法经验
展开
-
union联合体与字节序
union联合体与字节序1.union联合体union{ short value; char union_bytes[sizeof(short)];}test;union联合体所有数据成员共享一段内存,后写入的成员数据将覆盖之前的成员数据,成员数据都有相同的首地址。上述代码段的short型数据与char型数组在同一地址空间。2.字节序大端字节序...原创 2018-06-14 09:10:48 · 2226 阅读 · 0 评论 -
《TCP/IP网络编程》第17章 优于select的epoll
本章所有示例代码>>gtihub17.1 epoll理解及应用1. 基于select的I/O复用技术速度慢的原因 两点不合理:调用select函数后常见的针对所有文件描述符的循环语句;每次调用select函数时都需要向该函数传递监视对象信息; “每次调用select函数时向操作系统传递监视对象信息。” 应用程序向操作系统传递数据将对程序造成很大负担,而且无...原创 2018-07-05 10:45:23 · 212 阅读 · 0 评论 -
《TCP/IP网络编程》第16章 关于I/O流分离的其他内容
本章所有示例代码>>gtihub 调用fopen函数打开文件后可以与文件交换数据,因此说调用fopen函数后创建了“流”(Stream)。此处的“流”是指“数据流动”,但通常可以比喻为“以数据收发为目的的一种桥梁”。16.1 分离I/O流1. 2次I/O流分离第10章中,通过调用fork函数复制出1个套接字文件描述符,以区分输入输出中使用的文件描述符。虽然文件描述符本...原创 2018-07-05 10:26:15 · 262 阅读 · 0 评论 -
《TCP/IP网络编程》第15章 套接字和标准I/O
本章所有示例代码>>gtihub15.1 标准I/O函数的优点 fopen、feof、fgets、fputs函数等。1. 标准I/O函数的两个优点标准I/O函数具有良好的移植性(Portability)(ANSIC)标准I/O函数可以利用缓冲提高性能 创建套接字时,操作系统将生成用于I/O的缓冲。此缓冲在执行TCP协议时发挥着非常重要的作用。此时若使用标准I/O...原创 2018-07-05 10:21:10 · 250 阅读 · 0 评论 -
《TCP/IP网络编程》第14章 多播与广播
本章所有示例代码>>gtihub向大量客户端发送相同数据时,可以使用多播技术解决。14.1 多播 多播(Multicast)方式的数据传输是基于UDP完成的。区别在于,UDP数据传输以单一目标进行,而多播数据同时传递到加入(注册)特定组的大量主机。换言之,采用多播方式时,可以同时向多个主机传递数据。1. 多播的数据传输方式及流量方面的优点多播服务器端针对特定多播组,只...原创 2018-07-05 10:15:39 · 316 阅读 · 0 评论 -
《TCP/IP网络编程》第13章 多种I/O函数
本章所有示例代码>>github13.1 send & recv函数1. Linux中的send & recv函数#include <sys/socket.h>ssize_t send(int sockfd, const void *buf, size_t nbytes, intflags); -sockfd: 表示与数据传输对象...原创 2018-07-05 10:07:56 · 217 阅读 · 0 评论 -
《TCP/IP网络编程》第12章 I/O复用
12.1 基于I/O复用的服务器端1. 多进程服务器端的缺点 为了构建并发服务器,只要有客户端连接请求就会创建新进程。这的确是实际操作系统中采用的一种方案,但并非十全十美,因为创建进程时需要大量的运算和内存空间,由于每个进程都具有独立的内存空间,所以相互间的数据交换也要求采用相对复杂的方法(IPC属于相对复杂的方法)。2. 理解复用 “在1个通信频道中传递多个数...原创 2018-07-05 09:48:55 · 283 阅读 · 0 评论 -
《TCP/IP网络编程》第11章 进程间通信
11.1 进程间通信的基本概念 进程间通信(InterProcess Communication,IPC)意味着两个不同进程间可以交换数据,为了完成这一点,操作系统中应该提供两个进程可以同时访问的内存空间。1. 对进程间通信的基本理解 只要有两个进程可以同时访问的内存空间,就可以通过此空间交换数据,但进程具有完全独立的内存结构。就连通过fork函数创建的子进程也不会与父进程...原创 2018-06-26 22:47:01 · 696 阅读 · 0 评论 -
《TCP/IP网络编程》第10章 多进程服务器端
10.1 进程概念及应用1. 两种类型的服务器端 按序处理客户端请求,如果每个客户端的平均服务时间为0.5秒,则第100个客户端会对服务器产生相当大的不满。 所有连接请求的受理时间不超过1秒,但平均服务时间为2~3秒。2. 并发服务器端的实现 同时向多个客户端提供服务的并发服务器端,具有代表性的并发服务器端实现模型和方法: A、多进程服务器: ...原创 2018-06-26 22:26:57 · 368 阅读 · 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 · 426 阅读 · 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 · 297 阅读 · 0 评论 -
《TCP/IP网络编程》第7章 优雅地断开套接字连接
本章所有示例代码>>github7.1 基于TCP的半关闭1. 单方面断开连接带来的问题 Linux的close函数(Windows的closesocket函数)意味着完全断开连接。完全断开连接不仅指无法传输数据,而且也不能接收数据。 主机A发送完最后的数据,调用close函数断开了连接,之后主机A无法再接收主机B传输的数据。最终,由主...原创 2018-06-26 19:27:45 · 372 阅读 · 0 评论 -
《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 · 198 阅读 · 0 评论 -
《TCP/IP网络编程》第5章 基于TCP的服务器端/客户端(2)
5.1 回声客户端的完美实现1. 回声服务器端没有问题,只有客户端有问题。 回声客户端传输的是字符串,而且是通过调用write函数一次性发送的,之后还调用一次read函数,期待着接收自己传输的字符串。2. 回声客户端问题解决方法 解决:因为可以提前确定接收数据的大小,若之前传输了20字节长的字符串,则在接收时循环调用read函数读取20个字节即可。3. ...原创 2018-06-26 18:34:31 · 443 阅读 · 0 评论 -
《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 · 405 阅读 · 0 评论 -
《TCP/IP网络编程》第3章 地址族与数据序列
3.1 分配给套接字的IP地址与端口号 IP是InternetProtocol(网络协议)的简写,是为收发网络数据而分配给计算机的值。 端口号并非赋予计算机的值,而是为区分程序中创建的套接字而分配给套接字的序号。1. 网络地址(Internet Address)IPv4 4字节地址族IPv6 16字节地址族 IPv4标准的4字节IP地址分为网络地址和主机(指计算机)地...原创 2018-06-26 11:20:45 · 222 阅读 · 0 评论 -
《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 · 215 阅读 · 0 评论 -
《TCP/IP网络编程》第18章 多线程服务器端的实现
本章所有示例代码>>gtihub18.1 理解线程的概念1. 引入线程的背景 多进程模型的缺点:创建进程的过程会带来一定的开销;为了完成进程间数据交换,需要特殊的IPC技术;“每秒少则数十次、多则数千次的‘上下文切换’(ContextSwitching)是创建进程时最大的开销。” 单CPU系统中,系统将CPU时间分成多个微小的块后分配给了多个进程,为了分时使用C...原创 2018-07-05 10:58:37 · 224 阅读 · 0 评论