1. 套接字Socket

作者: 童伯虎 | 来源:发表于2019-07-17 21:14 被阅读0次

套接字(Socket)是一个抽象层,位于应用层和传输层之间,将TCP/IP复杂的操作抽象出几个简单接口,供应用层调用,实现网络进程之间的通信。


套接字实际是传输层连接的端点,使用“IP地址:端口号”进行唯一标识。在网络通信中,套接字一定是成对出现的,两个套接字组成的socket pair唯一标识一个连接。一端的发送缓冲区对应对方的接收缓冲区。使用同一个文件描述符检索套接字的发送缓冲区和接收缓冲区。


网络系统一般提供三种不同类型的套接字:

  • 流式套接字(SOCK_STREAM):提供可靠的、面向连接的双向数据传输服务,使用TCP协议来实现。
  • 数据报套接字(SOCK_DGRAM):提供不可靠、无连接的双向数据传输服务,使用UDP协议来实现。
  • 原始套接字(SOCK_RAW):使用较低层协议(IP或ICMP)进行直接访问。

Unix Socket通信流程如下:


  1. socket():创建套接字。

  2. bind():绑定本地地址。
    很多时候,应用程序不关心使用的本地地址,这时不用调用bind(),而由系统自动分配。但在知名端口上操作的进程必须指定本地端口,这时就使用bind()为套接字指定本地地址。

  3. listen():监听连接请求。

  4. connect():请求连接。

  5. accept():接受连接。

  6. read()/write():双向通信。

  7. close():关闭套接字。

相关文章

  • Python基础语法-3

    socket套接字使用流程:1.创建套接字2.使用套接字收/发数据3.关闭套接字 创建一个TCP socket 创...

  • iOS 网络(三)-Socket

    一、Socket原理 1.套接字(Socket)概念 套接字(Socket)是通信的基石,是支持TCP/IP协议的...

  • SOCKET与NIO

    1. 套接字(SOCKET)相关概念 网络套接字的基本操作:创建(socket)、命名(bind)、侦听(list...

  • 2.4 Android中的IPC方式(四)

    1. Socket简介 Socket也称为套接字,是网络通信中的概念。它分为流式套接字和用户数据报套接字,分别对应...

  • 1. 套接字Socket

    套接字(Socket)是一个抽象层,位于应用层和传输层之间,将TCP/IP复杂的操作抽象出几个简单接口,供应用层调...

  • iOS 原生Socket和CocoaAsyncSocket框架的

    一、Socket到底是什么? 1、Socket原理 1.1、套接字(Socket)概念 套接字(Socket)是通...

  • 2018-09-12网络通信基础(day18)

    1.网络基础 2.socket编程 socket又叫套接字,就是进行数据通信两端。分为服务端套接字和客户端套接字 ...

  • python套接字

    套接字 1.什么是socket编程 socket又叫套接字,指的是实现通信的两个端;这两个端又分为服务器套接字和客...

  • day19

    socket套接字 socket又叫套接字,实现网络通信的python通过提供socket标准库来支持socket...

  • 2018-09-12 day18网络编程

    1.socket套接字 socket又叫套接字,就是进行数据通信两端。分为服务端套接字和客户端套接字 套接字编程:...

网友评论

    本文标题:1. 套接字Socket

    本文链接:https://www.haomeiwen.com/subject/ksryhctx.html