《TCP/IP网络编程》第4章 笔记&代码&注释

TCP

TCP Transmission Control Protocol 传输控制协议,意为对数据传输过程的控制。

TCP/IP 协议栈

TCP/IP 协议栈分四层:

  1. 应用层
  2. TCP层/UDP层
  3. IP层
  4. 链路层

根据2.的TCP套接字还是UDP套接字收发数据,他们的协议栈各不相同。

链路层

物理连接领域标准化的结果,是最基本的领域,定义LAN、WAN、MAN等网络标准。

IP层

IP本身是面向消息、不可靠的协议,每次传输数据他来选择路径,但并不一致,如若发生路径错误,则会选择其他路径;若数据丢失,则无法解决。

TCP层/UDP层

TCP保证可靠的数据传输,他发送数据时以IP层为基础。

UDP则不保证数据传输的可靠性。

根据应用性质选择使用TCP/UDP层。

应用层

根据程序特点性质决定服务器和客户端之间的数据传输规则。

基于TCP服务器端/客户端

socket() bind() listen() accept()

read()/write()  Linux

recv()/send() Windows

close()
创建套接字 分配套接字地址 等待连接请求状态 允许连接 数据交换 断开连接

listen()进入等待连接请求状态

SOCKET hServerSock;
//......
listen(hServerSock, 5);//Windows

第一个参数:套接字的句柄。

第二个参数,等待队列的长度,这里的5表示最多五个链接请求进入队列。

实现迭代服务器/客户端

第一章中,服务器处理了一次客户端的连接请求就结束了运行,listen()中第二个参数没有多大意义。

为了多次处理,需要编写迭代服务器端/客户端。

回声(echo)服务端/客户端

socket() bind() listen() accept()

read()/write()  Linux

recv()/send() Windows

close()
创建套接字 分配套接字地址 等待连接请求状态(回到这里) 允许连接 数据交换 断开连接(回到listen()运行后状态)

代码:

https://github.com/ChristmasError/TCP-IP-Network-programming/tree/master/%E7%AC%AC%E5%9B%9B%E7%AB%A0%20%E5%9F%BA%E4%BA%8ETCP%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%26%E5%AE%A2%E6%88%B7%E7%AB%AF

猜你喜欢

转载自blog.csdn.net/qq_43265890/article/details/84778429