<网络编程>网络套接字

news2024/11/17 13:50:05

目录

理解源IP地址和目的IP地址

认识端口号

端口号和进程ID的关系

理解源端口号和目的端口号

初步认识TCP、UDP协议

TCP协议

UDP协议

网络字节序列

socket网络接口

socket常见API

sockaddr结构

UDPsocket

编码:


理解源IP地址和目的IP地址

源IP:发出消息的主机

目的IP:源主机指定的接收消息的主机

认识端口号

端口号:传输层协议的一个内容,用来标识一个进程(唯一性),用端口号来交付数据。

IP地址(公网IP, IPV4 32位),IP地址早已经不够了,采用将网络划分为局域网IP和公网IP,IP在特定的网络中保证主机唯一性。

我们通信的目的是将数据传输到对方机器上面的软件客户端 -> 客户端进程, 服务器软件 -> 服务器进程。真正的网络通信过程,本质其实是进程间通信!,将数据在主机间转发仅仅是手段,机器收到之后,需要将数据交付给指定的进程!!

端口号和进程ID的关系

一个进程可以绑定多个端口号,但是一个端口号不能被多个进程绑定。

理解源端口号和目的端口号

发数据的事源端口,收到数据的是目的端口。

网络中:IP地址+端口号 = 套接字,所有我们一般在网络编程称之为套接字编程。

初步认识TCP、UDP协议

TCP协议

传输层协议、有连接、可靠传输、面向字节流

有连接:事先告知

可靠传输:为了保证可靠,就会设计更多的策略,保证不丢包

UDP协议

传输层协议、无连接、不可靠传输、面向数据报

无连接:随时可能发数据,没有事先告知

不可靠传输:只负责把数据给下层,其他的不管,丢包就丢包咯

网络字节序列

不同的机器数据存放可能有大小端之分,为了避免这些差异,网络有了如下规定:

网络规定,所有的数据,都必须是大端!

socket网络接口

socket常见API

 常见的套接字:

1.域间soket :本地通信方案,类似管道,会了网络socket就会了

2.原始socket : 通常编写工具,可以绕过其他层编写

3.网络socket :

理论上是三种应用场景,对应的应该是三套接口!,但是Linux中,不想设计过多的接口!所以就将所有的接口进行统一了!

sockaddr结构

sockaddr_in :网络通信

sockaddr_un:  本地通信

sockaddr: 前16位地址,判断是网络/本地通信。

UDPsocket

  

云服务器无法绑定公网IP,也不建议;

对于服务器来说,也不推荐绑定一个确定的的IP,推荐绑定任意IP的方案;

编码:

udp · d29c7f7 · 绅士.永/Linux_learn_1 - Gitee.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/463601.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服装店铺装修有哪些窍门?做好这3点,顾客主动上门

现在街边有各种各样的服装店,有的服装店客流不断,有的服装店却很冷清,导致这种现象的原因有很多,比较重要的一点就是你的服装店铺装修没做好。 你的服装店铺装修足够吸引人吗? 什么样的服装店铺装修才能吸引顾客&#…

【技巧】如何修改PDF文件?

PDF文件格式安全、标准化,很多人在工作中几乎离不开。可有些小伙伴想要修改PDF文件内容时,发现无法修改,那是什么情况呢?如何才能修改PDF文件呢?下面小编就来分享一些小技巧。 技巧一:使用PDF编辑器 如果使…

凌恩生物文献分享|一株细菌完成图也能发一区10分+!

期刊:Science of the Total Environment 影响因子:10.753 发表时间:2022 样本类型:Bosea sp. Ads-6菌株 客户单位:中国科学院微生物研究所 一、研究背景 环境中抗生素残留和耐药性的增加引发了许多…

一文详解汽车操作系统现状

摘要: 智能座舱和自动驾驶的发展,特斯拉的突飞猛进,让各大主机厂越来越重视汽车操作系统。但车企现在所做的软件定义汽车,大都是通过软硬件解耦来降低造车成本、丰富新车功能,在操作系统层面大都还停留在市场调研和学…

linux ubantu 16.04 安装fbprophet 和 pystan经验总结

写在前面 之前在window11上,安装了一下午,不是C版本不行,就是这个那个不通过,主要是Pystan运行不起来就很气,fbprophet本身就需要依赖这个包,然后MSVC不支持,裂开。尝试了很多次,碰…

基于Java开发的分布式在线教育系统,支持考试、直播、问答

一、开源项目简介 知道学习平台是一个基于 Java 开发的分布式在线教育系统项目采用前后端分离的企业级微服务架构引入组件化的思想实现高内聚低耦合,项目代码简洁注释丰富上手容易注重代码规范,严格控制包依赖可以帮助个人、企业或机构快速搭建一个在线…

C# 利用TabControl控件制作多窗口切换

TabControl控件切换时触发的事件 选项卡切换触发的是TabControl控件的SelectedIndexChanged事件。 当TabControl控件的任何一个TabPage被点击或选择,即发生SelectedIndexChanged事件事件。 代码如下: private void tabControl1_SelectedIndexChanged(o…

设计模式 --- 结构型模式

一、概述 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。 由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”…

L2TP Client-initated场景

L2TP Client-initated场景 1. 原理 ![原理](https://img-blog.csdnimg.cn/66ce3169502b4252bca5d9d7a6c0027c.png)1.1 阶段1:创建L2TP隧道 C与LNS通过交互三条消息协商隧道ID、UDP端口(1701)、主机名称、L2TP版本、隧道验证等参数。 1.2 …

使用Spark实现词频统计

文章目录 一,词频统计准备工作(一)版本选择问题(二)安装Scala2.12.15(三)启动集群的HDFS与Spark(四)在HDFS上准备单词文件 二,本地模式运行Spark项目&#xf…

Meta的分割一切模型SAM( Segment Anything )测试

Meta不久前开源发布了一款图像处理模型,即分割一切模型:Segment Anything Model,简称 SAM,号称要从任意一张图片中分割万物,源码地址为: https://github.com/facebookresearch/segment-anything打开后看到…

ssm+java企业公司产品分销商管理系统

一、 二、经营管理: ①分销商每月提交自己进多少货物(从总部进购了多少“鹊巢”的商品给自己负责区的大型商超)——对应的种类一共进多少货物;该种类中具体的产品又进了多少货物具体到(参考三产品管理模块)…

RelativeLayout相对布局

一、官方地址&#xff1a; https://developer.android.google.cn/reference/kotlin/android/widget/RelativeLayout?hlen 二、概述 相对布局&#xff08;RelativeLayout&#xff09;是一种根据父容器和兄弟控件作为参照来确定控件位置的布局方式 三、基本格式 <RelativeLay…

Nacos注册中心的使用

文章目录 Nacos注册中心1. 服务注册到nacos1&#xff09;引入依赖2&#xff09;配置nacos地址3&#xff09;重启 2.服务分级存储模型2.1.给user-service配置集群2.2.同集群优先的负载均衡 3.权重配置 Nacos注册中心 国内公司一般都推崇阿里巴巴的技术&#xff0c;比如注册中心…

Docker安装Redis(普通安装+在线安装+离线安装)

文章目录 Redis概述一、磁盘安装1.1 安装环境1.2 安装步骤1.3 服务器启停命令 二、docker安装1.在线安装2.离线安装 总结 Redis概述 Redis&#xff0c;英文全称是Remote Dictionary Server&#xff08;远程字典服务&#xff09;&#xff0c;是一个开源的使用ANSI C语言编写、支…

ext-1:PDK工具包编译出例程

1、TI的单独StarterWare不更新后&#xff0c;后续维护和更新的是 PROCESSOR-SDK-AM335X 软件开发套件 &#xff08;PDK&#xff09;&#xff0c;对比以前的&#xff0c;里面没有例程&#xff0c;所以下载安装完需要自己编译出example例程。 因为编译出example例程中间会出现很…

设计模式--适配器模式

目录 基本介绍 工作原理 类适配模式 介绍 应用实例介绍 类适配器模式注意事项和细节 对象适配模式 介绍 对象适配器模式注意事项和细节 接口适配器模式 介绍 适配器模式的注意事项和细节 基本介绍 (1) 适配器模式(Adapter Pattern) 将某个类的接口转换成客户端期望的…

从JDK源码级别彻底剖析JVM类加载机制

loadClass的类加载过程 加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载 ● 加载&#xff1a;在硬盘上查找并通过IO读入字节码文件&#xff0c;使用到类时才会加载&#xff0c;例如调用类的main()方法&#xff0c;new对象等等&am…

如何选择最适合你的数据库解决方案:PostgreSQL VS MySQL 技术选型对比

文章目录 PostgreSQL与MySQL技术选型对比什么是 WordPress 数据库&#xff1f;什么是 PostgreSQL&#xff1f;历史主要特点高度可靠灵活性可扩展性复制用例什么是 MySQL&#xff1f;历史主要特点使用方便高灵活性可靠性和安全性高性能可扩展开源许可证用例PostgreSQL 与 MySQL&…

状态模式——随遇而安

● 状态模式介绍 状态模式中的行为是由状态来决定的&#xff0c;不用的状态下有不同的行为。状态模式和策略模式结构几乎完全一样&#xff0c;但它们的目的、本质却完全不一样就。状态模式的行为是平行的、不可替代的&#xff0c;策略模式的行为是彼此孤立、可相互替换的。用一…