Linux 进程间套接字通信(Socket)基础知识

网上科普有关“Linux 进程间套接字通信(Socket)基础知识”话题很是火热,小编也是针对Linux 进程间套接字通信(Socket)基础知识寻找了一些与之相关的一些信息进...

网上科普有关“Linux 进程间套接字通信(Socket)基础知识”话题很是火热,小编也是针对Linux 进程间套接字通信(Socket)基础知识寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

姓名:罗学元 学号:21181214375 学院:广州研究院

嵌牛导读Linux进程间套接字通信基础

嵌牛鼻子Linux 进程间套接字及通信介绍

嵌牛提问Linux进程间套接字包含哪些内容,如何实现通信

一、套接字(Socket)通信原理

套接字通信允许互联的位于不同计算机上的进程之间实现通信功能。

二、套接字的属性

套接字的特性由3个属性确定,它们分别是:域、类型和协议。

1. 套接字的域

它指定套接字通信中使用的网络介质,最常见的套接字域是AF_INET,它指的是Internet网络。当客户使用套接字进行跨网络的连接时,它就需要用到服务器计算机的IP地址和端口来指定一台联网机器上的某个特定服务,所以在使用socket作为通信的终点,服务器应用程序必须在开始通信之前绑定一个端口,服务器在指定的端口等待客户的连接。

另一个域AF_UNIX表示UNIX文件系统,就是文件输入/输出,它的地址就是文件名。

2. 套接字类型

因特网提供了两种通信机制:流(stream)和数据报(datagram),因而套接字的类型也就分为流套接字和数据报套接字。我们主要看流套接字。

流套接字由类型SOCK_STREAM指定,它们是在AF_INET域中通过TCP/IP连接实现,同时也是AF_UNIX中常用的套接字类型。

流套接字提供的是一个有序、可靠、双向字节流的连接,因此发送的数据可以确保不会丢失、重复或乱序到达,而且它还有一定的出错后重新发送的机制。

与流套接字相对的是由类型SOCK_DGRAM指定的数据报套接字,它不需要建立连接和维持一个连接,它们在AF_INET中通常是通过UDP/IP实现的。它对可以发送的数据的长度有限制,数据报作为一个单独的网络消息被传输,它可能丢失、复制或错乱到达,UDP不是一个可靠的协议,但是它的速度比较高,因为它并不需要总是要建立和维持一个连接。

3.套接字协议

只要底层的传输机制允许不止一个协议来提供要求的套接字类型,我们就可以为套接字选择一个特定的协议。通常只需要使用默认值。

三、套接字地址

每个套接字都有其自己的地址格式,对于AF_UNIX域套接字来说,它的地址由结构sockaddr_un来描述,该结构定义在头文件

struct sockaddr_un{

sa_family_t sun_family;? //AF_UNIX,它是一个短整型

char sum_path[];? //路径名

};

对于AF_INET域套接字来说,它的地址结构由sockaddr_in来描述,它至少包括以下几个成员:

struct sockaddr_in{

short int sin_family;? //AN_INET

unsigned short int sin_port;? //端口号

struct in_addr sin_addr; //IP地址

}

而in_addr被定义为:

struct in_addr{

unsigned long int s_addr;

}

四、基于流套接字的客户/服务器的工作流程

使用socket进行进程通信的进程采用的客户/服务器系统是如何工作的呢?

1.服务器端

首先,服务器应用程序用系统调用socket来创建一个套接字,它是系统分配给该服务器进程的类似文件描述符的资源,它不能与其他的进程共享。

接下来,服务器进程会给套接字起个名字,我们使用系统调用bind来给套接字命名。然后服务器进程就开始等待客户连接到这个套接字。

然后,系统调用listen来创建一个队列,并将其用于存放来自客户的进入连接。

最后,服务器通过系统调用accept来接受客户的连接。它会创建一个与原有的命名套接不同的新套接字,这个套接字只用于与这个特定客户端进行通信,而命名套接字(即原先的套接字)则被保留下来继续处理来自其他客户的连接。

2.客户端

基于socket的客户端比服务器端简单。同样,客户应用程序首先调用socket来创建一个未命名的套接字,然后讲服务器的命名套接字作为一个地址来调用connect与服务器建立连接。

一旦连接建立,我们就可以像使用底层的文件描述符那样用套接字来实现双向数据的通信。

关于“Linux 进程间套接字通信(Socket)基础知识”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[寄山少爷]投稿,不代表小熊号立场,如若转载,请注明出处:https://xx-scm.com/cshi/202606-179442.html

(134)

文章推荐

  • 实操教程“微信小程序决胜麻将开挂神器软件下载(透视挂真的假的)

    实操教程“微信小程序决胜麻将开挂神器软件下载网上科普有关“实操教程“微信小程序决胜麻将开挂神器软件下载”话题很是火热,小编也是针对实操教程“微信小程序决胜麻将开挂神器软件下载寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,实操教程“微

    2025年03月14日
    72
  • 教程辅助!“微乐填大坑(详细透视开挂教程)

    教程辅助!“微乐填大坑网上科普有关“教程辅助!“微乐填大坑”话题很是火热,小编也是针对教程辅助!“微乐填大坑寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,教程辅助!“微乐填大坑这款游戏可以开挂的,确实是有挂的,通过微信【】很多玩家在

    2025年03月15日
    78
  • 推荐一款“众友麻将开挂下载安装”其实确实有挂

    网上科普有关“众友麻将开挂下载安装”话题很是火热,小编也是针对同城衡阳字牌作弊开挂的方法寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,众友麻将开挂下载安装这款游戏可以开挂的,确实是有挂的,通过微信【游戏】很多玩家在这款游戏中打牌都会发现

    2025年04月28日
    66
  • 实测辅助”滇麻圈真的有挂吗”其实确实有挂

    滇麻圈真的有挂吗网上科普有关“滇麻圈真的有挂吗”话题很是火热,小编也是针对滇麻圈真的有挂吗寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,滇麻圈真的有挂吗这款游戏可以开挂的,确实是有挂的,通过微信【】很多玩家在这款游戏中打牌都会发现很

    2025年05月25日
    58
  • 实测辅助”科乐吉林麻将能开挂吗(如何开挂)

    科乐吉林麻将能开挂吗网上科普有关“科乐吉林麻将能开挂吗”话题很是火热,小编也是针对科乐吉林麻将能开挂吗寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,科乐吉林麻将能开挂吗这款游戏可以开挂的,确实是有挂的,通过微信【】很多玩家在这款游戏

    2025年05月26日
    54
  • 6秒懂!天府之城到底怎么开挂”其实确实有挂

    天府之城到底怎么开挂网上科普有关“天府之城到底怎么开挂”话题很是火热,小编也是针对天府之城到底怎么开挂寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,天府之城到底怎么开挂这款游戏可以开挂的,确实是有挂的,通过微信【】很多玩家在这款游戏

    2025年06月09日
    39
  • 6秒懂!欢乐划水麻将有挂吗(万能开挂器通用版)

    欢乐划水麻将有挂吗网上科普有关“欢乐划水麻将有挂吗”话题很是火热,小编也是针对欢乐划水麻将有挂吗寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,欢乐划水麻将有挂吗这款游戏可以开挂的,确实是有挂的,通过微信【】很多玩家在这款游戏中打牌都

    2025年06月24日
    33
  • 辅助开挂工具“碰碰麻将怎么开挂(详细真的有挂)

    网上科普有关“碰碰麻将怎么开挂”话题很是火热,小编也是针对同城衡阳字牌作弊开挂的方法寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,碰碰麻将怎么开挂这款游戏可以开挂的,确实是有挂的,通过微信【游戏】很多玩家在这款游戏中打牌都会发现很多用户

    2025年07月04日
    27
  • 辅助教程实测“家乡大二有挂吗(开挂神器怎么用)

    网上科普有关“家乡大二有挂吗”话题很是火热,小编也是针对同城衡阳字牌作弊开挂的方法寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,家乡大二有挂吗这款游戏可以开挂的,确实是有挂的,通过微信【游戏】很多玩家在这款游戏中打牌都会发现很多用户的牌

    2025年07月14日
    35
  • 开挂工具“微乐广西麻将有挂是真的吗(透视挂真的假的)

    网上科普有关“微乐广西麻将有挂是真的吗”话题很是火热,小编也是针对同城衡阳字牌作弊开挂的方法寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,微乐广西麻将有挂是真的吗这款游戏可以开挂的,确实是有挂的,通过微信【游戏】很多玩家在这款游戏中打牌

    2025年08月30日
    20

发表回复

本站作者后才能评论

评论列表(4条)

  • 寄山少爷
    寄山少爷 2026年06月10日

    我是小熊号的签约作者“寄山少爷”!

  • 寄山少爷
    寄山少爷 2026年06月10日

    希望本篇文章《Linux 进程间套接字通信(Socket)基础知识》能对你有所帮助!

  • 寄山少爷
    寄山少爷 2026年06月10日

    本站[小熊号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育

  • 寄山少爷
    寄山少爷 2026年06月10日

    本文概览:网上科普有关“Linux 进程间套接字通信(Socket)基础知识”话题很是火热,小编也是针对Linux 进程间套接字通信(Socket)基础知识寻找了一些与之相关的一些信息进...