看到个好的的例子,来温习一下java的网络编程。
1.使用的类
(1)InetAdress、InetSocketAdress
(2)URL
(3)TCP:ServerSocket、Socket
(4)UDP:DatagramSocket、 DatagramPacket
2.获取计算机的ip地址和解析DNS
1.InetAdress
只获取ip地址和解析DNS,不包括端口。
(1)静态方法获取对象
InetAdress.getLocalHost();
InetAdress.getByName("www.baidu.com");
InetAdress.getByName("223.87.1.58");
(2)方法
getHostAdress() 返回ip地址
getHostName() 返回域名|本机为计算机名
2.InetSocketAdress
封装端口,三个构造函数,分别是:
(1)InetSocketAdress(InetAdress addr, int port)
(2)InetSocketAdress(int port)
(3)InetSocketAdress(String hostname, int port)
方法:getHostAdress() 返回ip地址、
getHostName() 返回域名|本机为计算机名、getPort()返回端口
3.URL
URL是统一资源的定位符,是指向互联网资源的指针,资源可以是简单的文件或目录,也可以是复杂的对象的引用,例如对数据库或搜索引擎的查询。组成为:协议、域名、端口和资源名(相对路径)。URL的构造函数相对较多。
URL url = new URL("http://www.baidu.com:80/index.html#aa?uesrname=sei")
方法
(1)获取协议:getProtocol()
(2)获取域名:getHost()
(3)获取端口:getPort()
(4)获取资源:getFile()
(5)获取相对路径:getPath()
(6)获取锚点:getRef()有锚点时返回否则为null
(7)获取参数:getQuery()有锚点时返回null
(8)获取资源网络流:InputStream openStream()
4.UDP
UDP非面向连接,以数据为中心,效率较高,不安全。
4.1客户端
(1)创建客户端 DatagramSocket类+指定端口
(2)准备数据:字节数组
(3)打包:DatagramPacket + 服务器地址及端口
(4)发送并释放资源
4.2服务端
(1)创建服务端 DatagramSocket类+指定端口
(2)准备接受容器 字节数组,封装DatagramPacket
(3)包,接收数据
(4)分析并释放资源