| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 嵌入式网络编程要不要学?答案是要,学计算机当然要弄清楚计算机网络!因此TCPUDP协议是我们需要掌握的,对于入行小白,这也是一面试热点! -> 正文阅读 |
|
[网络协议]嵌入式网络编程要不要学?答案是要,学计算机当然要弄清楚计算机网络!因此TCPUDP协议是我们需要掌握的,对于入行小白,这也是一面试热点! |
? ? ? 网络编程其实就是计算机网络编程,通常牵扯到计算机通信,所以对于嵌入式也尤为重要,也是面试一热点,今天我来分享一下我所了解的计算机网络!欢迎大神指教! ? ?关于计算机发展至今,有很多历程,首先在1946至1969年计算机网络在此期间萌芽,1946年第一台计算机的诞生,其后20多年,计算机一直在寻求发展,最先开始是以主机为中心通信,至1969年后,发展位15个站点,23台主机,1973年,ARPANet发展成为国际互联网,阿帕网标志着多台计算机网络实现通信!到1970后IOS国际标准化组织进行10年努力,确立了TCP/ip协议。到1986年后NSF国家科学基金网实现了全美以及后来到现在的全球化互联网。 一、IOS模型和TCP/IP体系结构1.网络体系结构是什么?网络体系结构即指网络的层次结构和每层所使用协议的集合 2.网络体系结构(IOS模型和TCP/IP)?IOS模型是一个理想化的模型,尚未完整的实现 TCP/IP协议是工业标准 3.传输层协议(TCP和UPD)? TCP:有连接,可靠 UDP:无连接,不保证可靠 TCP:? (Transfer Control Protocol 传输控制协议)????? (1).是一种面向连接的传输层协议 ?(三次握手) ????? (2).它能提供高可靠性通信(即数据无误,数据无丢失,数据无失序,数据无重复到达) 适用情况:???? 适合于对传输质量要求较高,以及传输大量数据的通信. ???? 在需要可靠数据传输的场合,通常适用TCP协议 ???? MSN/QQ等即时通讯软件的用户登录账户管理相关的功能采用TCP协议 UDP: (User Datagram Protocol 用户数据报协议)UDP:不保证可靠的无连接协议,在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。 适用情况:
4.TCP网络通信(1)tcp网络通信是靠什么通信?socket需要一种通用的网络编程接口,它是一个特殊的文件描述符,(read,write,close)。 流式套接字(SOCK_STREAM) ----TCP 提供了一个面向连接、可靠的数据传输服务,数据无差错、无重复的发送且按发送顺序接收。内设置流量控制,避免数据流淹没慢的接收方。数据被看作是字节流,无长度限制。 (2)字节序存储小端序:低字节存储在低地址处。 大端序:低字节存储在高地址处 (3)IP地址在网络中,IP地址是主机的唯一标识,32位的数---->点十进制”192.168.2.67” A类:地址范围是1.0.0.0~126.0.0.0 B类:地址范围是128.0.0.0------191.255.255.255 C类:地址范围是192.0.0.0~223.255.255.255 D类:组播地址范围是224.XXX.XXX.XXX-----239.XXX.XXX.XXX E类:XXX.XXX.XXX.255该网段的广播地址 ?255.255.255.255全网广播 (4)端口号?1~~~~~~~~1023 (SSH:22 HTTP:80 HTTPS:469)各种系统的端口 ?保留端口:1024~~~~5000(不建议使用) ?可以使用:5000-----65535 (5)通信5.UPD网络通信(1)UDP网络通信是靠什么通信?数据报套接字(SOCK_DGRAM)--->UDP 提供无连接服务。数据包以独立数据包的形式被发送,不提供无差错保证,数据可能丢失或重复,顺序发送,可能乱序接收 (2)通信 二、IO模型?1.阻塞IO
?2.非阻塞IO
当你一开始建立一个套接字描述符的时候,系统内核将其设置为阻塞IO模式。 可以使用函数fcntl()设置一个套接字的标志为O_NONBLOCK 来实现非阻塞。 int fcntl(int fd, int cmd, long arg); ????? int flag; ????? flag = fcntl(sockfd, F_GETFL, 0); ????? flag |= O_NONBLOCK; ????? fcntl(sockfd, F_SETFL, flag); 3.IO多路复用并发服务器
1.创建监听队列(fd_set xx xx) 2.监听的套接字加入到监听队列FD_SET (listenfd &xx) 3阻塞监听select函数 4.遍历哪个文件描述符发生变化先找到监听套接字然后接收链接将新的套接字加入监听队列然后通信。 ?这样就能多个客户端连接服务器,服务器也能处理。 计算机网络编程要学习的还很多这只是一部分内容,欢迎补充! |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 21:18:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |