套接字编程
创始人
2024-09-25 07:48:04
0

网络套接字编程 

先将数据通过os,将数据发送到目标主机(手段)TCP/IP协议完成,再在本主机将收到的数据推送到自己上层指定的进程,这时候网络通信本质上就成了进程间的通信。其中ip地址可以标识互联网上唯一的一台主机,而端口号可以标识主机内唯一的一个进程。网络通信本质就是通过IP+PORT构建进程的唯一性,来进行基于网络的进程间的通信。

端口号为什么不采用进程的pid?并不是所有的进程都要进行网络间的通信,如果用pid进行标识,旧的对管理进程的结构体加字段来对其是否进行网络通信加字段,其次因为pid是属于os中进程管理模块,如果我们的端口号采用pid就意味着增加了网络通信管理和进程管理的耦合度,一旦进程管理对pid进行了更改还要考虑网络通信管理模块,于是自己新起一套端口号来标识主机中需要进行网络通信的进程。

面向字节流, 在传输层没有报文的概念,它收到一堆的数据,把这一堆的数据交给上层应用层也可以一个字节一个字节的交,对于这个二进制的字节数据如何解释,tcp层是不关心的 ,他只关心应用层要多少就给多少,具体的解释是交由应用层来处理的,这个我们称之为字节流。

网络字节序列是为了解决不同主机 采用大小端存储差异的问题。所以规定:网络序列必须是大端(低地址高权值位而高地址是低权值位),发数据必须转换成为大端,接收数据再按照大端去接收。  

为了让大家可以用一套套接字的既可以进行网络间通信又可以进行本地通信,于是设计出了一个公共的数据结构struct sockaddr,这个结构体可以兼容sockaddr_in和sockaddr_un,传递参数的时候根据通信的类型对struct sockaddr进行一下强转就可以了。下面介绍一下sockaddr结构体,因为socket的api需要用到这个变量类型。

lo就是loop,127.0.0.1: 本地环回,就表示的就是当前主机默认对应的ip地址,通常用来进行本地通信或者测试。用来走网络协议栈但是并不用于队中把数据发送到网络。 如果我们在127.0.0.1这个IP地址上测试通过了,但是在网络当中测试的时候不通过,大概率是网络的问题。

我们的云服务器,不需要bind ip地址,需要让服务器自己指定ip地址,但是自己本地装的虚拟机或者物理机器是允许的。

网络通信属于进程间通信的范畴, 我们的网络套接字本质也是文件,有对应的文件描述符。

守护进程

1、进程组分为前台任务和后台任务

2、如果后台任务提到前台,也就是谁当前使用该终端,老的前台任务bash就无法运行了。ctrl+c可以干掉该任务然后让bash重新回到前台运行

3、任何时刻,在会话中只能有一个前台任务在运行!所以我们在命令行启动一个前台进程之后,bash就无法运行了。

4、如果登录就是创建一个会话,bash任务,启动我们的进程,就是在当前会话中创建新的前后台任务,那么如果我们退出呢就是销毁该会话,销毁会话就可能会影响会话内部的所有任务。

一般网络服务器,为了不受到用户登注销的影响,就需要让该进程该会话中独立出来,不要跟任何一个用户会话产生关联,独立成为一个会话,从包含关系变成并列关系,就有了守护进程的运行方式。   pid_t setsid(void)谁调用该函数就把自己设立成为一个新的会话,成功了就返回调用进程的pid。 

url

要访问服务器,必须知道服务器的IP+PORT,一般公司提供服务并不是提供的IP+PORT,而是用域名提供服务。域名解析服务:将域名www.baidu.com解析成为ip地址110.242.68.4。

url是统一资源定位符,通过url可以唯一确定全网当中唯一的一份资源,可能是图片、音频等资源,让后通过端口对应的进程将这份资源download下来。登录信息现在不这么用了,现在登录都是网页级别的了,不会再域名当中出现登录信息了。由于服务器端的端口号不能随意指定,必须是总所周知的,且不能随便更改的,所以端口号和成熟的应用层协议是一一对应强相关的。https对应的端口号是443,而http对应的端口号是80,所以为什么访问网站的时候没有加上端口号是因为浏览器会自动识别协议名称,而协议有对应的端口号,所以可以省略端口号。 web根目录不一定是Linux下的根目录,是通过web服务器去跟我们进行解释的,我们要访问某种资源一定要通过根目录配合上反斜杠标识服务器目录下某个路径下的资源。?问号之后代表的是参数,比如说搜索的内容,这些参数最终都是要交给我要访问的资源的。参数是kv的,比如uid(key)=1(value),用&做为分隔符级联多个参数。

url对一些特殊的字符需要进行解码和编码的操作,

相关内容

热门资讯

秒懂教程!拼三张房卡多少钱一张... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:71319951许多玩家在游戏中会购买房卡来享...
微信炸金花房间房卡怎么买/微信... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:8488009许多玩家在游戏中会购买房卡来享受...
微信好友炸金花房卡在哪里买/微... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33903369许多玩家在游戏中会购买房卡来享...
秒懂教程!微信里面斗牛链接房卡... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:66336574许多玩家在游戏中会购买房卡来享受...
软件不支持安卓系统,揭秘软件为... 你有没有遇到过这种情况?买了一款心仪的手机,却发现心仪的软件不支持安卓系统,心里那个滋味啊,就像吃了...
怎么创建拼三张房间卡房卡/新鸿... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:55051770许多玩家在游戏中会购买房卡来享...
拼三张房卡如何充值/新蓝鲸大厅... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:8488009许多玩家在游戏中会购买房卡来享受...
安卓系统的钓鱼之王,揭秘钓鱼软... 你知道吗?在安卓系统的世界里,有一个大名鼎鼎的家伙,它就像是个钓鱼高手,专门钓那些不小心上钩的用户。...
安卓系统免费观看视频,解锁海量... 亲爱的手机控们,你是不是也和我一样,对免费观看视频的安卓系统应用情有独钟?没错,在这个信息爆炸的时代...
安卓系统换成ios系统数据怎么... 你有没有遇到过这种情况:手机从安卓系统换成iOS系统后,突然发现之前积累的数据不翼而飞,心里那个急啊...
安卓原车机系统,安卓原车机系统... 你有没有发现,现在很多车都开始变得智能起来呢?这不,安卓原车机系统就悄悄地走进了我们的生活。想象坐在...
安卓车机通用系统下载,智能驾驶... 你有没有发现,现在汽车界也开始流行智能化了?没错,就是那个我们平时挂在嘴边的安卓车机通用系统。今天,...
安卓原生系统应用商店,一站式应... 你有没有发现,每次打开你的安卓手机,那个应用商店总是那么默默地陪在你身边?它就像一个贴心的助手,帮你...
安卓系统怎么样安装wd系统,安... 你有没有想过给你的安卓手机来个“变身”大改造?没错,就是将安卓系统升级为WD系统!听起来是不是有点酷...
安卓系统升级速度,从快速迭代到... 你有没有发现,每次打开手机,安卓系统总在默默地进行升级?这就像是我们的小助手,时不时地给自己充充电,...
安卓苹果系统流畅性,系统流畅性... 你有没有发现,现在手机的世界里,安卓和苹果两大巨头就像是在赛跑,你追我赶,谁都不愿意落后。今天,咱们...
浩顺收银系统下载安卓,助力商家... 你有没有想过,在繁忙的商场里,那些收银员是如何快速而准确地完成每一笔交易的?这其中,浩顺收银系统可是...
安卓系统怎么降级吗,轻松实现系... 你有没有发现,手机用久了,系统更新换代的速度简直比兔子还快!这不,你的安卓手机可能也跟着潮流升级到了...
安卓系统外接鼠标设置吗,轻松实... 你有没有想过,给你的安卓手机或者平板电脑配上一个鼠标,让它瞬间变身成一台迷你电脑呢?这听起来是不是很...
微信拼三张房卡哪里有卖/狂飙大... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33903369许多玩家在游戏中会购买房卡来享...