网络端

1.synchronized 同步锁
同步方法:
成员|静态
简单,但是锁的范围一般可能较大,效率低
同步块
类的class:相当于锁了类的整个信息|所有对象
this:锁当前对象,锁了这个对象的所有资源
资源:一般锁不变的内容--对象地址
锁的范围太大效率低,锁的范围太小可能锁不住
锁一定要锁不变的内容

死锁:
需要避免锁使用的过于频繁,遇到对象无法释放的情况,否则出现死锁的问题

2.线程通信(生产者消费者模式)
wait():线程处于等待状态
释放对象的锁,cpu的资源
notify():唤醒对方正在处于等待池中的线程
没有对象的资源,就算是被唤醒也无法执行,必须要获取到对象的锁才能有资格执行
notifyAll()
唤醒全部
注意:使用在一个同步的环境下

3.IP:定义网络上的节点(电脑,手机,pad,路由器...)..区分节点
分类:
IPV4 : 32位
IPV6 : 128位

特点的IP:
局域网内部IP:192.168.0.0~192.168.255.255
127.0.0.1 : 默认本地IP
localhost : 本地域名
DNS服务器:解析IP和域名之间的关系

InetAddress 此类表示互联网协议 (IP) 地址。
static InetAddress getLocalHost() 返回本地主机。
static InetAddress getByName(String host) 在给定主机名的情况下确定主机的 IP 地址。

String getHostName() 获取此 IP 地址的主机名。
String getHostAddress() 返回 IP 地址字符串(以文本表现形式)。

端口: InetSocketAddress

4. 端口port:区分软件...
2个字节: 0~65535
注意:
1.同一的协议下端口号不能冲突
2.自定义设置端口号建议设置越大越好,一般8000网上
预留端口号:
80: http
8080:tomcat
1521:Oracle
3306:Mysql

InetSocketAddress 此类实现 IP 套接字地址(IP 地址 + 端口号)。
InetSocketAddress(String hostname, int port) 根据IP|域名+端口号构建
InetAddress getAddress() 获取 InetAddress。
String getHostName() 获取 hostname。
int getPort() 获取端口号。

5.URL:统一资源定位符
互联网三大基石: http html url
url的构成:
协议
域名
端口
资源
数据
"http://www.baidu.com:80/index.html?name=zhangsan&pwd=123#a"

URL(String spec) 构建url

6-1.Socket套接字: 传输层为应用层开辟的小口子,通过 Socket进行发送和接收数据
不同协议下的socket实现不同
面向Socket编程

tcp: 面向连接 打电话 安全 开销大 基于3次握手 大小没有限制 . 基于流传输
udp: 非面向连接 写信|发短信 只管写只管发 开销小,效率高 不安全 大小有限制 一般不超过60k , 基于字节数组传输

基于udp的socket编程:
发送端
接收端
DatagramSocket 此类表示用来发送和接收数据报包的套接字。(定义发送端|接收端)
DatagramPacket数据报包(数据打包)

udp实现发送端的基本流程: 发送端和服务端是平等的
1.定义发送端 DatagramSocket(端口号) 指定发送端的端口号
2.准备数据
3.对数据打包 DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)
构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号。
4.发送void send(DatagramPacket p)
5.关闭 void close() 关闭此数据报套接字。

6-2.接收端基本流程:
1.定义接收端 DatagramSocket(int port)
2.准备字节数组
3.准备包裹用来接收数据 DatagramPacket(byte[] buf, int length)
4.接收
5.从包裹中获取数据
byte[] getData()
返回数据缓冲区。
int getLength()
返回将要发送或接收到的数据的长度。
6.关闭

7-1.Socket 此类实现客户端套接字
客户端
1.定义客户端 Socket(String host, int port) 创建一个流套接字并将其连接到指定主机上的指定端口号。
2.IO操作
输出流OutputStream getOutputStream() 返回此套接字的输出流。
3.刷出
4.关闭
7-2.ServerSocket 此类实现服务器套接字。
TCP服务端
1.定义服务端 ServerSocket(int port) 创建绑定到特定端口的服务器套接字。
2.阻塞式监听 一个客户端连接成功,就是一个socket
3.io操作
4.关闭

8-1.TCP实现文件上传客户端 :
1.定义客户端 Socket(String host, int port) 创建一个流套接字并将其连接到指定主机上的指定端口号。
2.IO操作 先从文件中读入数据-->写出数据
new FileInputStream("");
输出流OutputStream getOutputStream() 返回此套接字的输出流。
3.刷出
4.关闭
8-2.TCP实现文件上传服务端:
1.定义服务端 ServerSocket(int port) 创建绑定到特定端口的服务器套接字。
2.阻塞式监听 一个客户端连接成功,就是一个socket
3.io操作 :从客户端读入数据 --->文件输出流 写出文件中
4.刷出
5.关闭

转载于:https://www.cnblogs.com/jj-01/p/11210332.html

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

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

相关文章

BZOJ2690: 字符串游戏(平衡树动态维护Dfs序)

Description 给定N个仅有a~z组成的字符串ai,每个字符串都有一个权值vi,有M次操作,操作分三种:Cv x v:把第x个字符串的权值修改为vCs x a:把第x个字符串修改成aQ:求出当前的最大权字符串集合,使得这个集合中的字符串经过重新排列后满足除最后一…

【第一趴】初探uni-app(uni-app发行者、uni-app推出背景、为什么选择uni-app)

文章目录写在前面DCloud当下跨平台开发存在的问题为什么选择uni-app写在最后写在前面 聚沙成塔——每天进步一点点,大家好我是几何心凉,不难发现越来越多的前端招聘JD中都加入了uni-app 这一项,它也已经成为前端开发者不可或缺的一项技能了&…

Rocket - tilelink - Atomics

https://mp.weixin.qq.com/s/TSwKL_qm-b-0e8x7r--hhg 简单介绍Atomics中数学运算、逻辑运算的实现。​​1. ioAtomics是一个硬件模块,他继承自Modules:​​IO端口定义如下:​​其中:a. write: 是否写操作;b. a&#xf…

Spark streaming java代码

待做转载于:https://www.cnblogs.com/drjava/p/10464388.html

【第二趴】uni-app开发工具(手把手带你安装HBuilderX、搭建第一个多端项目初体验)

文章目录 写在前面HBuilderXHBuilderX 优势HBuilderX 安装uni-app 初体验写在最后写在前面 聚沙成塔——每天进步一点点,大家好我是几何心凉,不难发现越来越多的前端招聘JD中都加入了uni-app 这一项,它也已经成为前端开发者不可或缺的一项技能了,所以凉哥为大家推出 聚沙成…

“勤学会”火爆来袭

文章目录勤学会是什么?勤学会存在的意义是什么强大的助学团勤学会如何帮助大家学习参与勤学会能得什么奖品专属C计划加入勤学会勤学会是什么? 他来了他来了,其实两个月前勤学会的概念产品就已经出现了,只不过因为了 1024 大型活动…

LeetCode -- 204. Count Primes

题目标签 HashTab(哈希表) 题意及思路 题意:略 思路:有关素数的题目我所知道有两种做法。一种是最基本的isPrime算法,关键点在循环判断时,上限为Math.sqrt(n) (求n是否为素数)。另外…

如何寻找无序数组中的第K大元素?

如何寻找无序数组中的第K大元素? 有这样一个算法题:有一个无序数组,要求找出数组中的第K大元素。比如给定的无序数组如下所示: 如果k6,也就是要寻找第6大的元素,很显然,数组中第一大元素是24&am…

【第三趴】uni-app页面搭建与路由配置(了解工程目录结构、学会搭建页面、配置路由并成功运行)

文章目录 写在前面工程结构新页面呈现写在最后本期推荐写在前面 聚沙成塔——每天进步一点点,大家好我是几何心凉,不难发现越来越多的前端招聘JD中都加入了uni-app 这一项,它也已经成为前端开发者不可或缺的一项技能了,所以凉哥为大家推出 聚沙成塔【45天玩转uni-app】专栏…

测试MongoDB的自动分片

MongoDB的自动分片: test库分片配置: db.shards.find(){ "_id" : "shard0000", "host" : "127.0.0.1:29017", "state" : 1 }{ "_id" : "shard0001", "host" : "1…

线上CPU飚高(死循环,死锁……)?帮你迅速定位代码位置

top基本使用: top命令参考本篇文章 查看内存和CPU的top命令,别看输出一大堆,理解了其实很简单 top 命令运行图: 第一行:基本信息 第二行:任务信息 第三行:CPU使用情况 第四行:物理内…

zookeeper watch笔记

ZK其核心原理满足CP, 实现的是最终一致性, 它只保证顺序一致性. zookeeper 基于 zxid 以及阻塞队列的方式来实现请求的顺序一致性。如果一个client连接到一个最新的 follower 上,那么它 read 读取到了最新的数据,然后 client 由于网络原因重新连接到 zoo…

洛谷 P1352 没有上司的舞会

洛谷 P1352 没有上司的舞会 Description 某大学有N个职员,编号为1~N。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指…

单机简单搭建一个kafka集群(没有进行内核参数和JVM的调优)

1.JDK安装 在我的部署单节点kafka的博客里有相关的方法。(https://www.cnblogs.com/ToBeExpert/p/9789486.html )zookeeper和kafka的压缩包下载地址也在单节点部署的这篇博客里。 1.zookeeper集群的搭建 将zookeeper.tar.gz解压为三个目录,例…

[翻译]三张卡片帮你记住TDD的基本原则

原文地址:http://blog.briandicroce.com/2008/03/14/three-index-cards-to-easily-remember-the-essence-of-test-driven-development/ 当我浏览ObjectMentor的博客的时候,其中一篇Tim Ottinger的“TDD on Three Index Cards”引起了我的注意。他回忆了他…

异常 try catch finally return 执行关系 MD

Markdown版本笔记我的GitHub首页我的博客我的微信我的邮箱MyAndroidBlogsbaiqiantaobaiqiantaobqt20094baiqiantaosina.com异常 try catch finally return 执行关系 MD 目录 目录探讨finally语句的执行与return的关系探讨finally语句的执行与return的关系 Java异常捕获机制try.…

Java数据结构之线性表(2)

从这里开始将要进行Java数据结构的相关讲解,Are you ready?Lets go~~ java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来的几张,我们将会分别讲解这几种数据结构,主要也是通过Java代码的…

凉哥核心圈程序员必备十大图书推荐(一)

写在前面 凉哥核心圈程序员必备十大图书推荐(一),各位伙伴应该一目了然了哈,没错凉哥准备出一系列图书推荐的文章,其实很多朋友在私下问凉哥除了大学的课程外自己要不要读一些技术类的书籍呢,答案当时要的…

了解大数据的特点、来源与数据呈现方式

本次作业来源于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2639 1.浏览2019春节各种大数据分析报告,例如: 这世间,再无第二个国家有能力承载如此庞大的人流量。http://www.sohu.com/a/290025769_313993春节人口迁…

MYSQL中只知表名查询属于哪个SCHEMA

只知道表名XXX查该表属于哪个schema、以及该表有哪些列等信息SELECT * from information_schema.columns WHERE table_name xxx; 只知道列名XXX查哪个schema有该列、以及有列名为XXX的表有哪些等SELECT * from information_schema.columns WHERE column_name XXX;参考链接&am…