#### 13.网络编程
1.要想实现网络传输,需要考虑的问题有哪些?
1.1 如何才能准确的定位网络上的一台主机?
1.2 如何才能进行可靠的、高效的数据传输?
2. java如何实现的网络通信
2.1 使用IP地址---定位一台主机;使用端口号---定位一个应用;===>InetAddress类
如何创建一个InetAddress的对象?getByName("");
比如:InetAddress inet = InetAddress.getByName("192.168.10.165");
如何获取本机的一个InetAddress的对象?getLocalHost()
域名:getHostName();ip:getHostAddress()
2.2 对应有协议
应用层:HTTP;ftp;telnet;DNS
传输层:TCP;UDP
网络层:IP;ICMP;ARP
物理+数据链路层:Link
2.3 TCP和UDP
TCP协议:
使用TCP前,必须建立TCP协议,形成传输数据通道;
传输前,采用"三次握手"方式,是可靠的;
在TCP协议进行通信的两个应用进程:客户端、服务端;
在数据中进行大数据量的传输;
传输完毕,需释放已建立的连接,效率低.
UDP协议:
将数据、源、目的封装成数据包,不需要建立连接;
每个数据报的大小限制在64kb大小;
因无序连接,是不可靠的;
发送数据时无需释放资源,速度快.
2.4
TCP的编程:Socket;ServerSocket
例子:
1.客户端发送内容给服务端,服务端将内容打印到控制台上。
2.客户端发送内容给服务端,服务端给予反馈。
3.从客户端发送文件给服务端,服务端保存到本地。并返回“发送成功”给客户端。并关闭相应的连接。
UDP的编程:DatagramSocket;DatagramPacket
UDP数据报DatagramPacket 通过数据报套接字DatagramSocket发送和接收;
DatagramPacket对象封装了UDP数据报,在数据报中包含了发送端的IP地址和端口号以及接收端的IP地址和端口号
URL的编程:统一资源定位符一个URL的对象,对应着互联网上一个资源。
//我们可以通过URL的对象调用其相应的方法,将此资源读取(“下载”)
网友评论