网络编程:Socket编程: 套接字编程
网络编程三要素:
IP地址:
32位或者128位表示一个IP地址, 转换成32位十进制显示, 128位 16进制显示
端口号:
每个与网络相关的程序,都是数据的入口与出口,就是端口号
协议:
UDP:
速度快
不安全,会丢数据
面向无连接
数据报包形式传输,大小64KB限制
TCP:
速度稍慢
安全, 不会丢数据、
三次握手协议
可以传输大数据量的文件数据
使用UDP协议完成数据的传输
发送端:
1:创建发送端DatagramSocket对象
2: 创建数据报包 DatagramPacket对象
3: 发送数据报包 send(dp)
4: 释放资源
接收端:
1: 创建接收端DatagramSocket对象
2:创建空的数据报包 DatagramPacket对象
3: 接收数据报包, 把数据存储到空的数据报包
4:解析数据报包的数据
获取IP地址 dp.getAddress(). getHostAddress()
获取数据: dp.getData()
数据数据的长度: dp.getLength()
5: 释放资源
(重点)使用TCP协议完成数据的传输
客户端:
1:创建客户端的Socket对象
2: 获取输出流, 写数据
3: 释放资源
服务器端:
1: 创建服务器端ServerSocket对象
2: 等待客户端的连接
3: 获取客户端的输入流对象, 获取数据:
4: 显示数据(其他操作【把数据写到文件中】)
5: 释放资源
注意事项:
1:在使用read()或者readLine()方法的时候,这两个方法为阻塞方法,可能会导致程序无限等待
我们可以通过 shutDownOutput() 或者 shutDownInput() 来告知对方数据已完毕
2: 在操作文件相关的流时, 必须关闭流
|
|