什么是socket ??
2015-07-29 22:12
302 查看
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协议的抽象, 从而形成了我们知道的一些最基本的函数接口.
相关文章推荐
- 什么是Socket?简单点,通俗易懂的?
- 什么是socket
- 什么是套接字(Socket)
- Socket是什么呢?中间软件抽象层
- 什么是socket?什么是socket的长、短连接?java如何简单实现socket客户端和服务器?
- 什么是Socket
- Windows Socket和Linux Socket编程有什么区别????(100分+追加)
- TCP传输模式中,调用Socket的shutdownInput()和shutdownOutput()都做了些什么?
- socket链接的关闭close和shutdown的区别,TIME_WAIT和CLOSE_WAIT什么时刻出现,如何处理
- (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
- 什么是socket?
- 在liunx下经常出现java.net.SocketException: Too many open files错误是什么原因
- socket中bind函数绑定的IP是什么
- socket是什么意思(1)
- socket是什么?
- MFC中socket编程时recv设置超时属性后,如果超时返回值是什么?
- Windows Socket和Linux Socket编程有什么区别
- 引用unp解释socket在什么情况下可读?
- socket是什么?协议栈操作的抽象
- 4 --- Windows Socket和Linux Socket编程有什么区别