什么是socket ??
2024-08-29 22:33:13
socket起源于Unix, 而Unix/Linux基本哲学之一就是"一切皆文件", 都可以用"打开open -> 读写write/read -> 关闭close" 模式来操作. 我的理解就是socket就是该模式的一个实现, socket即是一种特殊的文件, 一些socket函数就是对其进行的操作 (读/写IO, 打开, 关闭),
我们在传输数据时, 可以只使用(传输层) TCP/IP 协议, 但是那样的话, 如果没有应用层, 便无法识别数据内容, 如果想要使传输的数据有意义, 则必须使用到应用层协议, 应用层协议有很多, 比如 HTTP, FTP, TELNET等, 也可以自己定义应用层协议, WEB使用HTTP协议做应用层协议, 以封装HTTP文本信息, 然后使用TCP/IP做传输层协议将它发到网络上.
(1)socket是一个针对TCCP和UDP编程的接口, 你可以借助它建立TCP连接等等, 而TCP和UDP协议协议属于传输层, 而HTTP是个应用层的协议, 它实际上也建立在TCCP协议之上. HTTP是轿车, 提供了封装或者显示数据的具体形式, socket本身是发动机, 提供了网络通信的能力.
(2)socket是对TCP/IP协议的封装, socket本身并不是协议, 而是调用接口(API), 通过socket, 我们才能使用TCP/IP协议的抽象, 从而形成了我们知道的一些最基本的函数接口.
最新文章
- Java和C#下的参数验证
- logrotate机制与原理[转载]
- ASP.NET MVC网站在opera mobile emulator中浏览
- HTTP协议简解
- BZOJ 4245: [ONTAK2015]OR-XOR
- 基本概率分布Basic Concept of Probability Distributions 3: Geometric Distribution
- 程序设计入门——C语言 第5周编程练习 1高精度小数(10分)
- 【Unity3D】枪战游戏—发射子弹、射线检测
- 个人作业-Homework1感想
- 加载GIF动画方法 iOS
- JQuery Mobile页面的载入方式
- 网络编程TCP总结及实践-C语言
- 在Windows Service 2012上安装IIS 8.0 IIS 6
- SSH应用实战——安全防护(fail2ban)
- 每日踩坑 2018-01-09 WebAPI会如何面对 枚举 参数?
- 【GIS】Vue esri-leaflet
- EF 配置MySQL
- Realtime Rendering 1.1
- Linux 获取 MAC 地址并去除 : 字符
- sqlite3 的一些整理和补充