Socket编程--套接字概念
2017-08-08 20:51
148 查看
套接字概念
Socket本身有“插座”的意思,在Linux环境下,用于表示进程间网络通信的特殊文件类型。本质为内核借助缓冲区形成的伪文件。既然是文件,那么理所当然的,我们可以使用文件描述符引用套接字。与管道类似的,Linux系统将其封装成文件的目的是为了统一接口,使得读写套接字和读写文件的操作一致。区别是管道主要应用于本地进程间通信,而套接字多应用于网络进程间数据的传递。
套接字的内核实现较为复杂,不宜在学习初期深入学习。
在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程。“IP地址+端口号”就对应一个socket。欲建立连接的两个进程各自有一个socket来标识,那么这两个socket组成的socket pair就唯一标识一个连接。因此可以用Socket来描述网络连接的一对一关系。
套接字通信原理如下图所示:
套接字通讯原理示意
在网络通信中,套接字一定是成对出现的。一端的发送缓冲区对应对端的接收缓冲区。我们使用同一个文件描述符索发送缓冲区和接收缓冲区。
TCP/IP协议最早在BSD UNIX上实现,为TCP/IP协议设计的应用层编程接口称为socket API。本章的主要内容是socket API,主要介绍TCP协议的函数接口,最后介绍UDP协议和UNIX Domain Socket的函数接口。
网络编程接口
相关文章推荐
- 网络编程——socket套接字的使用(一)
- 套接字编程基本概念
- 网络编程——socket套接字编程(三)
- PHP实现系统编程(四)--- 本地套接字(Unix Domain Socket)
- 套接字(socket)编程简单实现server-client聊天程序
- python socket网络编程步骤详解(socket套接字使用)
- Socket编程创建对话框模式的项目时忘记选择 windows”套接字”的解决办法!
- Java编程思想之网络编程(二)套接字Socket
- java网络编程——Socket和ServerSocket,套接字编程——简单聊天室改进
- 关于网络协议和socket编程基本概念
- 基于SOCKET套接字的网络编程
- Beej网络socket编程指南 1 目录 套接字介绍和网络模型
- linux网络编程之socket(十五):UNIX域套接字编程和socketpair 函数
- 【网络编程5】Java与Python套接字Socket通信的例子
- C++ socket编程基础一(概念和常用API)
- Java网络编程从入门到精通(19):套接字(Socket)的异常
- Linux系统编程(37)—— socket编程之原始套接字
- Socket编程基本概念----imooc(2)
- 标准套接字SOCKET原理及编程(1)
- linux基础编程 套接字socket 完整的服务器端多线程socket程序