| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 网络编程 -> 正文阅读 |
|
[网络协议]网络编程 |
? ?BS兼容性更强 BS可以在很多地方只要有联网操作即可进行操作 ? ?网络通信三要素: 每一台联网设备都有一个IP地址 设备上的程序都有一个端口 ?我们先找到IP地址2? 然后通过端口8888找到相对应的端口 在传输过程中的规则 我们称之为协议 ?但是IPV4太小 我们又引入了IPV6 IP常用命令: ping+IP地址??: 打开cmd操作页面? 输入ping+IP地址 我们可以查询网络是否连接 ? ?局域网就是针对专门的组织机构所使用? 不可以到外面随意访问 公网地址:在外面随意地方都可以进行访问 ?也可以输入域名如:www.baidu.com进行访问 当我们访问成功 证明我们电脑连网了 ? ?判断是否连通网路 ? ? ?端口号是每一个主机中程序的号码 针对每一个主机的程序一个端口范围? 每一个主机最多装的程序数量肯定没有超过这个范围的 因此这个端口范围是够用的 举个例子:两台电脑中微信这个程序的端口都是88 同一个主机中的端口号不可以相同 不同主机中同一个程序的端口号可以相同 网络通信: ? ?TCP是可靠传输层? UDP是不可靠的传输层 ?三次握手: ?三次握手:客户端先发送连接请求给服务器? 服务器返回一个响应? 然后客户端再次发送确认信息 这三次握手是为了表明结论: 客户端? 服务器这两者都可以进行收取信息? 也可以进行发送信息 三次握手的过程 也就是确认上述结论的过程 ? ? ? ?UDP是一种不可靠的通信? 数据发出去就不管了 ?UDP通信: 发送端和接收端: ?演示: 1.发送端:(客户端) byte[ ] buffer="梅西".getBytes();? 表示把梅西这个字符串转换为字节数组的形式 直接把字符串改变为字节数组的形式。。。。
?2.接收端:?(服务端) ? ?先执行服务端测试类再执行客户端测试类 ? ? ?客户端: ?接收端: ? ? ?? ? ? TCP通信:? ? Socket打通管道,剩下的交给IO流, ? ? ? ? ?TCP通信的入门案例: 左为客户端? 发送消息 右为服务端? ?接收信息。 ? ? ? ? 基于上述的客户端和服务端我们进行改造: 我们只是进行改造了服务端 客户端保持不变 让客户端实现多线程即可? 并且重写run方法 原理: 每一个客户端发送信息过来都会搞一个线程来作为服务端接收这个请求 ? ?但是每一次接收一个客户端就创建一个线程 有点,,,, 所以我们搞一个线程池,,,, ? 1.服务端 ?2.服务端创建线程的类 ? 3.客户端 ? ? 创建一个线程池来处理客户端请求的优缺点: 优点: 创建一个线程池 能够更高效的利用线程池来进行处理客户端发送的任务请求 并且不会因为创建的线程过多而导致内存溢出的现象 缺点: 它相对于那种接收一个客户端就创建一个线程的操作来看? 存在的缺点就是不可以同时接收巨大多个服务请求 因为它创建的核心线程等 都是有限的 但是它可以被用作局域网少数客户端的完美操作,,,,? ? ? 当我们进行发送信息的时候 客户端1要同时发送信息给客户端 2 3 4 那么我们分析一下这个过程。。。。 客户端1先把这个信息在Socket管道用字节输出流发送给服务端? ?服务端由字节输入流进行接收 然后服务端再提高字节输出流在Socket管道中发送给客户端2 3 4? 提高字节输入流输入到客户端2 3? 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/26 10:14:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |