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协议的抽象, 从而形成了我们知道的一些最基本的函数接口.

 

最新文章

  1. Java和C#下的参数验证
  2. logrotate机制与原理[转载]
  3. ASP.NET MVC网站在opera mobile emulator中浏览
  4. HTTP协议简解
  5. BZOJ 4245: [ONTAK2015]OR-XOR
  6. 基本概率分布Basic Concept of Probability Distributions 3: Geometric Distribution
  7. 程序设计入门——C语言 第5周编程练习 1高精度小数(10分)
  8. 【Unity3D】枪战游戏—发射子弹、射线检测
  9. 个人作业-Homework1感想
  10. 加载GIF动画方法 iOS
  11. JQuery Mobile页面的载入方式
  12. 网络编程TCP总结及实践-C语言
  13. 在Windows Service 2012上安装IIS 8.0 IIS 6
  14. SSH应用实战——安全防护(fail2ban)
  15. 每日踩坑 2018-01-09 WebAPI会如何面对 枚举 参数?
  16. 【GIS】Vue esri-leaflet
  17. EF 配置MySQL
  18. Realtime Rendering 1.1
  19. Linux 获取 MAC 地址并去除 : 字符
  20. sqlite3 的一些整理和补充

热门文章

  1. 原来浏览器原生支持JS Base64编码解码 outside of the Latin1 range
  2. Java类加载器( 死磕 6)
  3. a completely rewritten architecture of Hadoop cluster
  4. Hadoop实战-Flume之Hello world(九)
  5. java之选择排序
  6. ubuntu搭建nginx
  7. iOS 工程中 Other Linker Flags
  8. 遇到的一个Form表单自动提交问题解决办法
  9. charles抓取线上接口数据替换为本地json格式数据
  10. input表单元素的默认padding不一致问题