当前位置: 首页 > article >正文

<网络编程>网络套接字

目录

理解源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.kler.cn/a/15239.html

相关文章:

  • Git 分⽀规范 Git Flow 模型
  • 讯飞、阿里云、腾讯云:Android 语音合成服务对比选择
  • 深入理解Redis(七)----Redis实现分布式锁
  • 前后端交互之动态列
  • 香港站群服务器有助于提升网站在搜索引擎中的排名
  • Failed to create a temp file - Jenkins 无法创建任务
  • Android那两个你碰不到但是很重要的类之ViewRootImpl
  • ToLua框架
  • 全国计算机等级三级网络技术试卷详解(二)
  • taro之项目初始化模板
  • JavaScript中的数据结构和算法
  • 一个朋友弄来的,太牛了,特别是后面内容,不看不知道,一看吓一跳,电话,热线
  • Leetcodes刷题之删除链表的倒数N个结点和删除链表的中间的结点
  • SD卡变成RAW格式怎么办?SD卡RAW格式的解决办法
  • HTML + CSS + JS 利用邮编查询 API 实现邮编查询工具
  • 【Mycat2】什么是原型库(Prototype)
  • 被遗忘的Java关键字:transient
  • 【刷题之路】LeetCode 203. 移除链表元素
  • Arduino学习笔记5
  • ( 字符串) 205. 同构字符串 ——【Leetcode每日一题】
  • digitalworld.local: JOY(ftp将可读文件夹上传到可写文件夹)
  • 在Linux操作系统上部署wgcloud监控
  • 《美团机器学习实践》读后感和一点思考
  • 智慧医疗服务平台有哪些优势?
  • 一些非常实用的JS前端面试题
  • 从0开始搭建一个简单的前后端分离的XX系统-vue+Springboot+mybatis-plus+mysql