套接字编程
创始人
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对一些特殊的字符需要进行解码和编码的操作,

相关内容

热门资讯

安卓动作识别系统,技术原理与应... 哇,你知道吗?现在智能手机的厉害程度简直让人惊叹!它们不仅能打电话、发短信,还能通过动作来识别你的意...
安卓华为文件系统,引领安卓性能... 亲爱的手机控们,你是否曾在翻看安卓华为手机时,发现那些神秘的文件夹和文件,心里直犯嘀咕:“这玩意儿是...
智慧宝职安卓系统,校园生活服务... 哇哦,你有没有想过,在繁忙的校园生活中,有一款神奇的软件,能让你轻松掌握课程、查询成绩、了解校园动态...
安卓系统占用内存越大,安卓系统... 亲爱的手机控们,你们有没有发现,随着手机使用时间的增长,安卓系统好像越来越“能吃”内存了呢?是不是觉...
安卓系统的应用介绍,应用生态与... 哇,你知道吗?安卓系统已经成为了全球最受欢迎的移动操作系统之一,它就像一个神奇的魔法盒,为我们的生活...
怎么设置加强安卓系统,如何设置... 亲爱的手机控们,是不是觉得你的安卓手机最近有点儿“懒洋洋”的,运行速度慢得像蜗牛爬?别急,今天就来教...
龙芯芯片装安卓系统,国产芯片的... 你有没有想过,咱们国家的龙芯芯片竟然能装上安卓系统?这可不是什么天方夜谭,而是实实在在的技术突破!今...
安卓出厂系统和最新系统,全面升... 亲爱的数码控们,你是否也像我一样,对手机系统的新鲜玩意儿充满好奇?今天,咱们就来聊聊安卓出厂系统和最...
掌上医院安卓系统,智慧医疗新时... 掌上医院安卓系统:你的私人健康小助手想象你正躺在床上,手机轻轻一滑,就能预约挂号、查看报告、了解医生...
安卓系统如何冻结程序,提升手机... 手机里那些占内存、耗电快的应用,是不是让你头疼不已?别急,今天就来教你怎么用安卓系统冻结这些“捣蛋鬼...
手机变身安卓系统,探索系统转换... 哇塞,你有没有想过,你的手机竟然可以变身成为安卓系统的小能手?没错,就是那个我们日常离不开的智能手机...
window平板转安卓系统,转... 亲爱的平板用户们,你是否曾想过,你的Windows平板电脑也能变身成为安卓小精灵呢?没错,今天我要跟...
安卓系统qq离线设置,畅享无打... 亲爱的安卓手机用户们,你们是不是也有过这样的烦恼:明明想安静地放松却总是被QQ消息打扰得心烦意乱?别...
安卓刷win系统体验,刷机攻略... 哇塞,你有没有想过,你的安卓手机也能变身成Windows系统的超级英雄?没错,就是那个我们熟悉的Wi...
安卓设备的系统刷写,操作步骤、... 你有没有想过,你的安卓手机其实就像一个等待你发挥创意的画布呢?没错,就是那个你每天捧在手心里的宝贝—...
安卓系统双开的软件,实现多账号... 你有没有想过,在手机上同时运行两个相同的APP,是不是就像拥有两个超级英雄一样酷炫呢?没错,这就是安...
安卓系统绘画app推荐,全方位... 你有没有想过,在手机上也能画出美轮美奂的作品呢?没错,现在科技这么发达,安卓系统上的绘画app可是五...
安卓系统看广告视频,智能播放与... 你有没有发现,现在手机上那些安卓系统的应用,动不动就弹出来广告视频?真是让人又爱又恨啊!今天,就让我...
安卓系统安装歌曲软件,热门歌曲... 你有没有想过,手机里没有喜欢的歌曲,那感觉就像是没有了灵魂?别急,今天就来给你支个招,教你在安卓系统...
如何退出安卓升级系统,实用技巧... 手机突然弹出一个升级提示,你心里是不是有点小紧张呢?别担心,今天就来手把手教你如何退出安卓升级系统,...