通信、端点、IO、文件
2024-09-06 11:29:24
什么是网络套接字(Socket)?一时还真不好回答,而且网络上也有各种解释,莫衷一是。下文将以本人所查阅到的资料来说明一下什么是Socket。
Socket定义
Socket在维基百科的定义:
A network socket is an endpoint of an inter-process communication across a computer network. Today, most communication between computers is based on the Internet Protocol; therefore most network sockets are Internet sockets.
而在Oracle官网上的定义是:
A socket is one endpoint of a two-way communication link between two programs running on the network.
其实他们想表达的都是这个意思:Socket是网络上两个程序双向通讯连接的端点。
那我们又该如何理解‘端点(endpoint)’一词呢?
在Unix/Linux中,一切皆文件。那对于这两个操作系统而言,“端点”就是一个特殊的文件,也就是说Socket实际上就是文件。既然Socket是文件,那就可以用“打开open –> 读写write/read –> 关闭close”模式来操作它,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)。
最新文章
- CSS 百分比 margin &; padding
- maven项目导入,包名出现异常-多出一个java的前缀
- 使用ASP.Net WebAPI构建REST服务(三)——返回值
- 一起刷LeetCode5-Longest Palindromic Substring
- How to delete a team project from Team Foundation Service (tfs.visualstudio.com)
- 交易策略研究 R库
- Android.mk 的含义
- 使apache解析域名到目录的方法
- 二十7天 春雨滋润着无形 —Spring依赖注入
- Ubuntu环境openresty的安装
- jetty作为内嵌服务器自启动
- 区块链会与io域名有什么关系
- Ibatis中的<;trim>;标签应用
- ida调试ios应用
- 测试之法 —— mock object
- pta l2-16(愿天下有情人都是失散多年的兄妹)
- List of RGBD datasets
- mysql中json_replace函数的使用?通过json_replace对json对象的值进行替换
- sql server判断是否为null
- [翻译] EAIntroView