
TCP/IP网络编程
Lee_01
coder
展开
-
TCP/IP三次握手
TCP/IP三次握手SYN是同步序列编号,是TCP/IP建立连接时使用的握手信息。ACK是确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。在TCP/IP协议中,如果接收方成功的接收到数据,那么会回复一个ACK数据。通过ACK信号有自己固定的格式,长度大小,由接收方回复给发送方。第一次握手,建立连接时,客户端发送SYN包到服务器,并进入SYN_SENT状态,等待服务器确认,其中SYN就是同步序列编号。第二次握手,服务器收到SYN包,必须确认客户的SY原创 2021-01-30 21:08:51 · 153 阅读 · 0 评论 -
TCP/IP网络编程学习笔记(一)基于TCP/IP的服务器端/客户端通信初探
一、概念网络编程:编写程序使两台联网的计算机相互交换数据 套接字:网络数据传输所用的软件设备 文件描述符:Linux系统分配给文件或套接字的整数,0-2被自动分配给三种标准IO对象(stdin/stdout/stderr),文件和套接字一般要经过创建过程才会分配文件描述符,而3种标准IO对象则无需创建,会被自动分配文件描述符 文件句柄:Windows系统中的文件句柄对应Linux系统中的...原创 2019-04-15 19:36:50 · 577 阅读 · 0 评论 -
TCP/IP网络编程学习笔记(二)套接字类型与协议设置、地址族与数据序列
一、协议、协议族、套接字类型1.概念协议,Protocol:计算机之间的通信规则 协议族,Protocol Family,头文件sys/socket.h中声明的协议族如下:PF_INET IPv4互联网协议族 PF_INET6 IPv6互联网协议族 PF_LOCAL 本地通信的UNIX协议族 PF_PACKET 底层套接字的协议族 PF_IPX...原创 2019-04-15 19:39:26 · 418 阅读 · 0 评论 -
TCP/IP网络编程学习笔记(三)基于TCP的服务器端/客户端
一、概念TCP,Transmission Control Protocol,传输控制协议 TCP/IP协议栈:链路层->IP层->传输层->应用层 IP本身是面向消息的、不可靠的协议,TCP层通过确认重传机制保证数据的正确传输二、迭代回声服务器端/客户端实现功能:客户端接受用户输入字符串,并将字符串发送到服务器,服务器将字符串回传给客户端;服务器能为5个客户端提供连...原创 2019-04-15 19:41:27 · 594 阅读 · 0 评论 -
TCP/IP网络编程学习笔记(四)基于UDP的服务器端/客户端
一、概念1.UDP套接字的特点不可靠的数据传输 没有流控制2.UDP的内部工作原理根据端口号将传到主机的数据包交付给最终的 UDP 套接字3.UDP的使用场合实时传输视频或音频二、相关函数sendto 函数#include<sys/socket.h>// 功能:发送数据// 参数:// sock--用于传输数据的 UDP 套接字文件描述符/...原创 2019-04-15 19:42:42 · 276 阅读 · 0 评论 -
TCP/IP网络编程学习笔记(五)断开套接字连接
一、基于TCP的半关闭1.单方面断开连接带来的问题Linux 的 close 函数和 Windows 的 closesocket 函数意味着完全断开连接。完全断开连接指:同时断开输入流和输出流。如果主机A不再需要向主机B传输数据,主机A还有来自主机B的数据必须接收时,完全断开会导致数据丢失。半关闭流(只关闭一部分数据交换中使用的流,可以传输数据但无法接收,或者可以接收数据但无法传输)可以解...原创 2019-04-15 19:44:03 · 383 阅读 · 0 评论 -
TCP/IP网络编程学习笔记(六)域名与网络地址
一、域名系统DNS,Domain Name System,域名系统,是对IP地址和域名进行相互转换的系统,其核心是DNS服务器 为什么要提供域名?IP地址难记!域名基本不变,IP相对频繁地改变 所有计算机中都记录着默认 DNS 服务器地址,通过这个默认 DNS 服务器得到相应的域名的 IP 地址信息。若该 DNS 服务器无法解析,则会向上级 DNS 服务器询问,逐级上传,最终可能达到顶级 ...原创 2019-04-15 19:45:40 · 231 阅读 · 0 评论 -
TCP/IP网络编程学习笔记(七)套接字的多种可选项
1.套接字的可选项创建套接字后,可以修改套接字特性 套接字可选项分为 SOL_SOCKET, IPPROTO_IP, IPPROTO_TCP三层2.相关函数getsockopt#include<sys/socket.h>// 功能:获取套接字可选项的信息// 参数:// sock--用于查看选项套接字文件描述符// level--要查看的可选项的协议...原创 2019-04-15 19:47:52 · 384 阅读 · 0 评论 -
TCP/IP网络编程学习笔记(八)基于多任务的并发处理器、分割TCP的I/O程序
1.基于进程的并发服务器模型#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<signal.h>#include<sys/wait.h>#include<arpa/inet.h>#inc...原创 2019-04-15 19:56:22 · 314 阅读 · 0 评论 -
TCP/IP网络编程学习笔记(九)I/O复用
一、select函数#include<sys/select.h>#include<sys/time.h>// 功能:将多个文件描述符集中到一起同一监视:是否存在套接字传接收数据?无需阻塞传输数据的套接字?哪些套接字发生了异常?// 参数:// maxfd--监视对象文件描述符数量// readset--将所有关注“是否存在读取数据”的文件描述符...原创 2019-04-15 19:57:51 · 297 阅读 · 0 评论