java学习第一天之网络
观看慕课网后写的一些笔记
TCP :传输控制协议
IP :互联网传输协议
IP地址 和 端口号组成了 Socket
http :80 ftp :21 telnet :23
java提供的网络功能有四大类:
1. InetAddress :用于标示网络上的硬件资源
2. URL :统一资源定位符 通过url可以直接读取或写入网络上的数据
协议名称和资源名称,中间用冒号隔开。
在java.net包中,提供了URL类来表示URL。
通过URL对象的openStream()方法可以得到指定资源的输入流
通过输入流可以读取、访问网络上的数据
3. Sockets :使用tcp协议实现网络通信的socket相关的类
TCP协议是面向连接、可靠的、有序的,以字节流的方式发送数据
基于TCP协议实现的网络通信类
客户端的Socket类
服务器端的ServerSocket类
![](https://img.haomeiwen.com/i13205743/6cd35b0d0527cc21.png)
![](https://img.haomeiwen.com/i13205743/64434254062e2d05.png)
![](https://img.haomeiwen.com/i13205743/2ea1f9a0be7e0a6c.png)
![](https://img.haomeiwen.com/i13205743/3c4a8ffce3c134d0.png)
先启动服务端,再启动客户端
多线程通信
![](https://img.haomeiwen.com/i13205743/25b1789be703bbb4.png)
4. Datagram :使用UDP协议,将数据保存在数据报中,通过网络进行通信。
UDP协议(用户数据报协议)是无连接、不可靠、无序的
UDP协议以数据报作为数据传输的载体,进行数据传输时,首先需要将要传输的数据定义成数据报 (Datagram),在数据报中指明数据所要达到的Socket(主机地址和端口号),然后再将数据报发送出 去
相关操作类: DatagramPacket:表示数据报包
DatagramSocket:进行端到端通信的类
服务器端
![](https://img.haomeiwen.com/i13205743/2c062b332e962527.png)
客户端
![](https://img.haomeiwen.com/i13205743/d60fecabba3b3c88.png)
总结:
1.多线程的优先级问题。在开发中适当的把它的优先级降低,未设置优先级可能会导致运行时速度非常慢,可降低优先级
2.是否关闭输出流和输入流。对于同一个socket,如果关闭了输出流,则与该输出流关联的socket也会被关闭,所以一般不用关闭流,直接关闭socket即可
网友评论