摘要:
本篇文章主要介绍了套接字的几个常用配置选项,包括SO_SNDBUF & SO_RCVBUF、SO_REUSEADDR及TCP_NODELAY等。 套接字可选项和I/O缓冲大小 前文关于套接字的描述仅仅是使用其默认套接字特性来进行数据通信,这对于简单的使用场景来说似乎是可以的,然而实际工作场景中的确需 阅读全文
摘要:
本篇文件简要介绍了域名系统及其与IP地址之间的关系。 域名系统 DNS(Domain Name System,域名系统)是对IP地址和域名进行相互转换的系统,其核心是DNS服务器。 什么是域名 提供网络服务的服务器端也是通过IP地址区分的,但由于IP地址形式繁琐,通常使用更为简洁的域名来取代IP地址 阅读全文
摘要:
本篇文章简单讨论了TCP套接字半关闭的相关知识。 通常来说,TCP建立连接的过程相对稳定,因为此时并未开始进行数据交换;而断开连接的过程由于已发生了数据交换,可能会发生一些预想不到的情况。 单方面断开连接带来的问题 前文所述的内容中,我们直接调用了close函数进行了完全断开连接,这就意味着本端既无 阅读全文
摘要:
本篇文章简单描述了UDP传输协议的工作原理及特点。 理解UDP UDP和TCP一样同属于TCP/IP协议栈的第二层,即传输层。 UDP套接字的特点 UDP的工作方式类似于传统的信件邮寄过程。寄信前应先在信封上填好寄信人和收信人的地址,之后贴上邮票放进邮筒即可。当然信件邮寄过程可能会发生丢失,我们也无 阅读全文
摘要:
本篇文章主要对TCP原理进行简单的分析和讨论。 TCP套接字中的I/O缓冲 前文有介绍过TCP通信数据无边界的特性,即本端一次发送的数据对端并不一定一次性接收,那剩余的数据在哪里呢? 实际上,write函数调用后并非立即传输数据,read函数调用后也并非马上接收数据。如下图所示,write函数调用瞬 阅读全文
摘要:
结合前面所讲述的知识,本篇文章主要介绍了简单服务器端和客户端实现的框架流程及相关函数接口。 理解TCP和UDP 根据数据传输方式的不同,基于网络协议的套接字一般分为TCP套接字和UDP套接字(本系列文章主要围绕TCP的内容讲解)。 TCP(Transmission Control Protocol) 阅读全文
摘要:
上一篇文章介绍了套接字的创建过程,这篇文章主要讨论分配给套接字的IP地址和端口号的相关知识。 IP地址和端口号 IP(Internet Protocol,网络协议)地址是收发网络数据而分配给计算机的值,端口号则并非赋予计算机的值,而是为了区分计算机程序所创建的不同套接字而分配给套接字的编号。 网络地 阅读全文
摘要:
本篇文章主要介绍创建套接字函数相关的3个输入参数的含义,它们最终确定了套接字通信所采用的协议。同时,也简单对比了TCP和UDP传输方式的区别。 什么是协议?协议是对话中使用的通信规则,而在计算机领域则可解释为“计算机间对话的通信规则”。简言之,协议就是为了完成数据交换而约定的规则。 //创建套接字 阅读全文
摘要:
1.网络编程和套接字 网络编程与C语言中的printf函数和scanf函数以及文件的输入输出类似,本质上也是一种基于I/O的编程方法。之所以这么说,是因为网络编程大多是基于套接字(socket,网络数据传输的软件设备,操作系统为我们提供的编程接口)来实现数据的输入输出的。 套接字通信过程可以类比打电 阅读全文
摘要:
1、文件大小查询 file_size.c
方法一:fseek + ftell;
方法二:ftell
2、特定大小文件创建以及读取操作时间测试 read_file_time.c
描述:创建1G大小文件,并完成顺序、逆序以及随机读取操作
3、编译 Makefile
统一编译以上两个源文件,并生成两个对应的可执行文件 阅读全文