java网络编程(1)

Java网络编程

一 基本概念

1.网络–将不同区域的计算机连接到一起 局域网 城域网 互联网
2.地址–IP地址 确定网络上 一个绝对地址 位置 >>房子的地址
3.端口号–区分计算机软件的 >> 房子的房门 2个字节 0–65536
1>.在同一个协议下 端口号不能重复 不同协议下可以重复
2>.1024以下的不要使用 80>>http , 21>> ftp
4.资源定位–URL:统一资源定位符 URI:统一资源
5.数据的传输
1>.协议:TCP和UDP协议
–1).TCP(transfer control protocol):电话 类似于三次握手 面向连接 安全可靠 效率低下
–2).UDP(userdatagramprotocol):短信 非面向连接 效率高 传输不可靠
2>.传输:
–1).先封装
–2).后拆封

==>>类
1.InetAddress InetSocketAddress
2.URL
3.TCP:ServerSocket Socket
4.UDP:DatagramSocket DatagramPacket

二.地址以及端口

1.InetAddress :封装IP以及DNS
方法:
getHostAddress() 返回ip地址
getHostName() 返回域名,本机为计算机名
InteAddress.getLocalHost(); 返回本机的
InteAdderss.getByName(“223.87.1.58”);括号里可以是地址也可以是域名
代码编辑如下
java网络编程(1)
2.InetSocketAddress:封装端口
1>.创建对象
InetSocketAddress(String hostname,int port) 根据主机名和端口号创建套接字地址
InetSocketAddress(InetAddress adort,int port) 根据IP地址和端口号创建套接字地址
java网络编程(1)

三.URL

URI(Uniform resource identifier)统一资源标识符,用来唯一的标识一个资源
URL(Uniform resource locator)统一资源定位器,它是一种具体的URI
–四部分组成:协议,存放资源的主机域名,端口,资源文件名(/)

1.创建
URL(String spec) 绝对路径构建
URL(URL context , String spec) 相对路径构建
2.方法
java网络编程(1)
3.流
1>.获取资源:源代码
java网络编程(1)
运行如上代码可以发现,会出现乱码。
原因:1).字节数不够 2).编码与解码的字符集不统一
–很明显如上代码的字节数都够了,所以乱码的原因是编码与解码的字符集不统一
接来下我们解决这个问题
1).在平台上更改java网络编程(1)
java网络编程(1)
2).利用转换流更改
java网络编程(1)
2>.文件流输出
java网络编程(1)
运行,F5刷新,双击打开
java网络编程(1)
或者将代码拷贝到文本档里,后缀名该为html

四.UDP通信

以数据为中心 非面向连接 不安全 数据可能丢失 效率高
1.类 DatagramSocket DatagramPacket
1>.客户端:
–1).创建 DatagramSocket 类 + 指定端口
–2).准备数据 字节数组
–3).打包 DatagramPacket + 服务器地址 以及端口
–4).发送
–5).释放资源
java网络编程(1)
2>.服务端
–1).创建 DatagramSocket 类 + 指定端口
–2).准备接收的容器 字节数组 封装DatagramPacket
–3).封装成 包
–4).接收数据
–5).分析数据
–6).释放
java网络编程(1)
那么我们思考一下,如果将准备的数据换成double类型的该怎么做?

2.扩展
将准备数据 字节数组改为double类型的数
1>.客户端:
–1).创建 DatagramSocket 类 + 指定端口
–2).准备数据 double类型的数
–3).打包 DatagramPacket + 服务器地址 以及端口
–4).发送
–5).释放资源
java网络编程(1)
2>.服务端
–1).创建 DatagramSocket 类 + 指定端口
–2).准备接收的容器 字节数组 封装DatagramPacket
–3).封装成 包-
-4).接收数据
–5).分析数据
–6).释放

java网络编程(1)

第一次写博客内心有点小激动 ,希望我的总结对大家有所帮助
有新的学习资料我会在第一时间上传博客,我们共同学习,共同进步!