netstat指令
netstat -an 可以查看当前主机网络情况,包括端口监听情况和网络连接情况。
netstat -an | more 可以分页显示。
要求在dos控制台下执行。
说明:(1)Listening表示某个端口在监听;(2)如果有一个外部程序(客户端)连接到该端口,就会显示一条连接信息。(3)可以输入ctrl +c退出指令。
UDP网络编程案例
类 DatagramSocket 和 DatagramPacket(数据包 / 数据报)实现了基于UDP协议网络程序。
UDP数据报通过数据报套接字 DatagramSocket 发送和接收,系统不保证UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达。
DatagramPacket对象封装了UDP数据报,在数据报中包含了发送端的IP地址和端口号以及接收端的IP地址和端口号。
UDP协议中每个数据报都给出了完整的地址信息,因此无须建立发送方和接收方的连接。
UDP说明: 1、没有明确的服务端和客户端,演变成数据的发送端和接收端。 2、接收数据和发送数据是通过 DatagramSocket 对象完成。 3、将数据封装到DatagramPacket 对象/装包。 4、当接收到DatagramPacket 对象,需要进行拆包,取出数据。 5、DatagramSocket可以指定在哪个端口接收数据。
基本流程:
1、核心的两个类/对象 DatagramSocket与DatagramPacket。
2、建立发送端,接收端(没有服务端和客户端概念)。
3、发送数据前,建立数据包/报DatagramPacket对象。
4、调用DatagramSocket的发送、接收方法。
5、关闭DatagramSocket。
接收端:
//1。创建一个DatagramSocket对象,准备接收数据DatagramSocket socket = new DatagramSocket(端口号);//2.构建一个DatagramPacket对象,准备接收数据(一个数据包最大64k)byte[] buf = new byte[1024];DatagramPacket packet = new DatagramPacket(buf, buf.length);//调用接收方法,将通过网络传输的DatagramPacket对象填充到 packet 对象//注:如果没有数据包发送到本机的9999端口,就会阻塞等待。socket.receive(packet);//把packet进行拆包,取出数据,并显示。int length = packet.getLength();//实际接收到的数据字节长度byte[] data = packet.getData();//接收到数据String s = new String(data,0,length);ystem.out.println(s);//关闭资源socket.close();
发送端:
//创建DatagramSocket 对象,准备接收数据DatagramSocket socket = new DatagramSocket(9998);//将需要发送的数据,封装到DatagramPacket对象byte[] data ="内容".getBytes();//说明:封装的DatagramPacket对象:data 内容字节数组,data.length,接收端IP,端口DatagramPacket packet =new DatagramPacket(data,data.length,IP,端口);//发送socket.send(packet);//关闭资源socket.close(;l