从零开始学JAVA记录——2019年5月13日

今天又是一个学习JAVA的好日子!
线程通信

  • wait(),notify(),notifyAll()实现线程通信,必须在一个同步环境下使用
  • 生产者消费者模式 例子:信号灯

IP: 定义网络上的不同节点(手机,电脑,路由器…)

  • IPv4:32位 IPV6:128位
  • 非注册IP地址(公司内部使用): 192.168.0.0 ~ 192.168.255.255
  • 特殊的IP:
  • 127.0.0.1 本地IP
  • 1ocalhost 本机域名
  • DNS域名解析器

java.net 类 InetAddress 此类表示互联网协议 (IP) 地址。

static InetAddress getLocalHost() 返回本地主机。
static InetAddress getByName(String host) 在给定主机名的情况下确定主机的 IP 地址

端口: 区分软件的
定义端口 2个字节 0~65535
相同的协议下端口不能冲突
端口自定义越大越好,8000以上,8000以内预留端口号
特殊的端口号:

  • 80: http
  • 8080: tomcat
  • 1521: Oracle端口号
  • 3306: mysql端口号
  • INetSocketAddress 此类实现 IP 套接字地址(IP 地址 + 端口号)

URL: 统一资源定位符|器

  • 互联网的三大基石: html http url

协议:http
域名:www.baidu.com
端口:80 默认80
资源:index.html?name=zhangsan&age=123#a

  • eg: http://www.baidu.com:80/index.html?name=zhangsan&age=123#a

  • URL URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。

String getFile()
获取此 URL 的文件名。
String getHost()
获取此 URL 的主机名(如果适用)。
String getPath()
获取此 URL 的路径部分。
int getPort()
获取此 URL 的端口号。
String getProtocol()
获取此 URL 的协议名称。
String getQuery()
获取此 URL 的查询部分。
String getRef()
获取此 URL 的锚点(也称为“引用”)
协议: 规范 合同

  • udp :非面向连接的 写信 ,不安全,效率高,协议简单,开销小,大小有限制一般不超过60k

  • tcp :面向连接的 打电话 ,安全,效率低,开销大 3次握手:1.拨号 2.回访:响应 3.发送数据 ,基于IO穿出数据

  • 应用层如何与传输层进行沟通?

  • 通过Socket套接字

  • 面向Socket编程,Socket相当于插座,是两层之间沟通的接口,不同协议,Socket的实现不一样

  • udp如何实现Socket编程: 发送端和接收端是平等的

  • DatagramSocket 此类表示用来发送和接收数据报包的套接字

  • DatagramSocket(int port)

  • DatagramPacket 此类表示数据报包。

UDP基本流程:发送端

  • 1.创建发送端,指明发送端的端口
  • 2.准备数据,转为字节数组
  • 3.把数据打包 指明接收端的地址和端口号 DatagramPacket
  • 4.发送数据
  • 5.关闭

UDP基本流程:接收端

  • 1.构建接受端,指定接受端端口
  • 2.准备字节数组,用来存储接口数据的
  • 3.把字节数组打包
  • 4.阻塞式接收
  • 5.处理数据
  • 6.关闭

客户端:在网络通讯中,第一次主动发起通讯的程序被称作客户端(Client)程序
服务器:第一次通讯中等待连接的程序被称作服务器端(Server)程序
tcp基本流程:客户端

  • 1.创建客户端 Socket 指定服务端的ip和端口 Socket(String host, int port)
  • 2.io操作
  • 3.关闭

tcp基本流程:服务端

  • 1.构建服务端 ServerSocket 指定端口 ServerSocket(int port)
  • 2.阻塞式监听 Socket accept()
  • 3.一个客户端就是一个socket IO操作
  • 4.关闭

你可能感兴趣的:(java小白)