问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-09-06 08:53

我来回答

2个回答

懂视网 时间:2023-02-13 16:20

linux系统中安装socket需要3个步骤,下面是具体的介绍:

1、进入socket官网,下载相对对应的版本。

2、下载之后将tar包上传至服务器中,执行mkdir命令运行。

3、完成之后用node命令查看是否安装成功。

今天的分享就是这些,希望能帮助大家。

热心网友 时间:2023-02-13 13:28

姓名:罗学元    学号: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与服务器建立连接。

一旦连接建立,我们就可以像使用底层的文件描述符那样用套接字来实现双向数据的通信。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 我36岁,今年突然长出好多白头发,请问有白发变黑发的方法吗 ...在分析案情情况时,主要根据犯罪现场的具体情况分析判断哪些问题... 做为回流生在蓝田报名中考还可以在学籍地渭南报名吗 纯白色棉布连衣裙怎么配鞋子? 阳江咸汤圆的做法步骤图,阳江咸汤圆怎么做 如何说服家长给我买手机呢? ...信 用 卡的时候听业务员推荐还有副卡,副卡和主卡有什么区别呢?_百 ... 求韩剧天狼星百度资源,云盘 求星球大战百度云盘分享,不要压缩。。。 求明亮的星高清电影百度云盘。非常感谢! 菜鸟级C语言入门 按要求写句子。1.现在人们常用《送杜少府之任蜀州》中的名句... 根据语境写句子 王者关于猪八戒的网名霸气 王者关于猪八戒的网名霸气精选 船停泊时锚是怎么起作用的? 什么是ⅱ类、ⅲ类银行卡? 吃低保的人欠钱不还怎么办? word文档如何转发到微信呢? vivo蓝牙耳机怎么开机 ...春暖花开!这些女孩名阳光温暖,充满积极向上的力量 琼海最贵的私立学校 电脑打不开农行网银页面怎么办 75年36岁是哪一年 在大学宿舍有没有发现学长学姐留下的“礼物”? 企业所得税的纳税人与负税人为什么是一致的? 黑芝麻发霉是什么样子 oppoa8可以玩光遇吗 依的意思解释 百度文稿经常不能复制,该怎样处理? ...快进老师知道吗或者是老师知道我看回放的总时长吗? 020 820 是哪里的 野马D20好不好,值不值得买 d20tcif1发动机怎么样 我在一个吉他行花400买了一个二手的Lakewood D-20.我已经知道没这型号了... 凯马福来卡云内D20发动机怎么样? 淘比乐D20无人机如何起飞? 新抢滩登陆怎么过关 职业规划:你希望做什么样子的工作? 身为家长你有问过孩子将来最希望做的职业是什么吗? 全球两个字翻译英文是怎么写