mirror of
https://github.com/riba2534/TCP-IP-NetworkNote.git
synced 2026-05-05 11:01:56 +08:00
chore: 将所有外部图片本地化到仓库
- 下载 110 张外部图片到根目录 images/ 文件夹 - 更新所有 README.md 中的图片引用为统一路径 images/xxx.png - 55 张图片成功下载(PNG 格式) - 55 张失效图片创建占位文件(SVG/PNG) - 移除所有外部图片链接依赖 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -12,7 +12,7 @@ TCP 的断开连接过程比建立连接更重要,因为连接过程中一般
|
||||
|
||||
Linux 的 close 函数和 Windows 的 closesocket 函数意味着完全断开连接。完全断开不仅指无法传输数据,而且也不能接收数据。因此在某些情况下,通信一方单方面的断开套接字连接,显得不太优雅。如图所示:
|
||||
|
||||

|
||||

|
||||
|
||||
图中描述的是 2 台主机正在进行双向通信,主机 A 发送完最后的数据后,调用 close 函数断开了最后的连接,之后主机 A 无法再接受主机 B 传输的数据。实际上,是完全无法调用与接受数据相关的函数。最终,由主机 B 传输的、主机 A 必须要接受的数据也销毁了。
|
||||
|
||||
@@ -24,7 +24,7 @@ Linux 的 close 函数和 Windows 的 closesocket 函数意味着完全断开连
|
||||
|
||||
此处的流可以比作水流。水朝着一个方向流动,同样,在套接字的流中,数据也只能向一个方向流动。因此,为了进行双向通信,需要如图所示的两个流:
|
||||
|
||||

|
||||

|
||||
|
||||
一旦两台主机之间建立了套接字连接,每个主机就会拥有单独的输入流和输出流。当然,其中一个主机的输入流与另一个主机的输出流相连,而输出流则与另一个主机的输入流相连。另外,本章讨论的「优雅的断开连接方式」只断开其中 1 个流,而非同时断开两个流。Linux 的 close 函数和 Windows 的 closesocket 函数将同时断开这两个流,因此与「优雅」二字还有一段距离。
|
||||
|
||||
@@ -70,7 +70,7 @@ howto: 传递断开方式信息
|
||||
|
||||
上述文件传输服务器端和客户端的数据流可以整理如图:
|
||||
|
||||

|
||||

|
||||
|
||||
下面的代码为编程简便,省略了大量错误处理代码。
|
||||
|
||||
@@ -88,7 +88,7 @@ gcc file_server.c -o fserver
|
||||
|
||||
结果:
|
||||
|
||||

|
||||

|
||||
|
||||
客户端接受完成后,服务器会接收到来自客户端的感谢信息。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user