socket(网络通信)教程

socket图标socket 是「套接字」的意思,学习 socket 编程,也就是学习计算机之间如何通信,并用编程语言来实现它。

socket 通信技术就是两台联网的计算机之间交换数据的技术,这就是 socket 的全部内容了吗?是的,socket 远比想象中简单很多!

为了让大家从底层理解 socket,不要被高级语言的各种封装所迷惑,本教程决定使用C语言进行编程,并同时讨论 Windows 和 Linux 两个平台。

阅读完本教程,你将 get 到计算机通信的基本原理,以及当前主流的技术选型,然后亲自设计出一款简单的 HTTP 服务器。

关于本教程

开始创作时间:2019-01-23

最后迭代时间:2023-02-03

当前版本:Version 2.0

字数统计:5.5W 字

版权证书:Version 1.0    Version 2.0

教程目录:
1. socket是什么?套接字是什么?
2. 套接字有哪些类型?socket有哪些类型?
3. 面向连接和无连接的套接字到底有什么区别
4. OSI网络七层模型简明教程
5. TCP/IP协议族
6. IP、MAC和端口号——网络通信中确认身份信息的三要素
7. Linux下的socket演示程序
8. Windows下的socket演示程序
9. Windows下使用WSAStartup()函数加载DLL
10. socket()函数用法详解:创建套接字
11. bind()和connect()函数:绑定套接字并建立连接
12. listen()和accept()函数:让套接字进入监听状态并响应客户端请求
13. send()/recv()和write()/read():发送数据和接收数据
14. 使用socket编程实现回声客户端
15. socket端口被占用的解决方案(2种)
16. 如何让服务器端持续不断地监听客户端的请求?
17. socket缓冲区以及阻塞模式详解
18. TCP协议的粘包问题(数据的无边界性)
19. 图解TCP数据报结构以及三次握手(非常详细)
20. 详细分析TCP数据的传输过程
21. 图解TCP四次握手断开连接
22. 如何优雅地断开TCP连接?
23. socket编程实现文件传输功能
24. 网络数据传输时的大小端问题
25. 在socket编程中使用域名
26. 再谈UDP和TCP
27. 基于UDP的服务器端和客户端
28. Socket模拟网站服务器(HTTP服务器)
29. I/O多路复用技术详解
30. select实现I/O多路复用(超级详细)
31. select多路复用技术实现回声客户端
32. poll实现I/O多路复用详解
33. Linux epoll:更高效的I/O复用技术
34. Linux epoll条件触发和边缘触发详解
35. epoll模拟网站服务器(HTTP服务器)
36. 多播(基于UDP协议)