java基础-网络编程入门(UDP/TCP)
网络编程入门(UDP/TCP)
InetAddress 的使用
为了方便我们对IP地址的获取和操作,java提供了一个类InetAddress供我们使用
InetAddress:此类表示Internet协议(IP)地址
static InetAddress getByName(String host) :确定主机名称的IP地址,主机名称可以是机器名称,也可以是IP地址
String getHostName() 获取此IP地址的主机名
String getHostAddress() 返回文本显示中的IP地址字符串
public class INetAdressDemo {
public static void main(String[] args) throws UnknownHostException {
InetAddress address = InetAddress.getByName("127.0.0.1");
String name = address.getHostName();
String ip = address.getHostAddress();
System.out.println(name);
System.out.println(ip);
}
}
协议:计算机网络中,连接和通信的规则被称为网络通信协议
UDP协议:
1)用户数据报协议
2)UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据
3)例如视频会议通常采用UDP协议,因这种情况即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。但是在使用UDP协议传数据时,由于UDP的面向无连接性,不能保证数据的完整性,因此在传输重要数据时不建议使用UDP协议
UDP通信原理:UDP是一种不可靠的网络协议,它在通信的两端各建立一个Socket对象,但是这两个Socket只是发送,连接数据的对象因此对于基础UDP协议的通信双方而言,没有所谓的客户端和服务器的概念
java提供了DatagramSocket类作为基于UDP协议的Socket
public class Udp {
public static void main(String[] args) throws IOException {
*//创建发送端的 Socket对象*
DatagramSocket ds =new DatagramSocket();
byte[] bys = "hello,udp,我来了".getBytes();
InetAddress address = InetAddress.*getByName*("127.0.0.1");
*//构造一个数据包发送指定长度的包到指定主机上指定端口号*
DatagramPacket dp = new DatagramPacket(bys,bys.length,address,10086);
ds.send(dp);
*//关闭发送端*
ds.close();
}
}
class UdpRecive{
public static void main(String[] args) throws IOException {
*//创建接收端的socket对象*
DatagramSocket ds = new DatagramSocket(10086);
*//创建一个数据包用来接收数据*
byte[] bys = new byte[1024];
DatagramPacket dp = new DatagramPacket(bys,bys.length);
*//调用DatagramSocket对象的方法接收数据*
ds.receive(dp);
*//解析数据包并把数据从数据包中显示 返回数据缓冲区*
int length = dp.getLength();
byte[] dates = dp.getData();
String data = new String(dates,0,length);
System.*out*.println("数据是"+data);
*//关闭接收端*
ds.close();
}
}
TCP协议:
传输控制协议
TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间的可靠无差错的数据传输。在TCP连接中必须要明确客户端和服务器端,由客户端向服务端发出连接请求,每次连接的创建都需要经过“三次握手”
三次握手:TCP协议中,在发送数据的准备阶段,客户端和服务器之间的三次交互,以保证连接的可靠
第一次握手:客户端向服务器发出连接请求,等待服务器确认
第二次握手:服务器向客户端回送一个响应,通知客户端接收到了连接请求
第三次握手:客户端再次向服务器发送确认信息,确认连接
完成三次握手,连接建立后,客户端和服务器就可以开始进行数据传输了,由于这种面向连接的特性。TCP协议可以保证传输数据的安全,所以应用十分广泛。例如:上传文件、下载文件、浏览网页等

浙公网安备 33010602011771号