网络端

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

死锁:
须要避免锁使用的过于频繁,遇到对象没法释放的状况,不然出现死锁的问题html

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

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) 构建urltomcat

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.关闭socket

相关文章
相关标签/搜索