1.1网络编程三要素
IP地址
端口
协议
1.2 IP地址
常用命令:
ipconfig:查看本机IP地址(127.0.0.1)
ping IP:检查网络是否连通
1.3 InetAddress的使用
通过返回值为InetAddress的静态方法得到该对象:
-
-
-
public static InetAddress getByName(String host) throws UnknownHostException
-
-
InetAddress inetAddress = InetAddress.getByName("DESKTOP-0FQ18CKX") // IP/主机名
String hostName = inetAddress.getHostName(); //得到此IP的主机名
String hostAddress = inetAddress.getHostAddress(); //得到IP地址
1.4 端口
设备上应用程序的唯一标识 (1024,65535]
1.5 协议
计算机网络中,连接和通信的规则被称为网络通信协议
UDP协议(不安全、效率高)
TCP协议(安全、不高效) 三次握手,四次挥手
1.6 UDP通信程序
1.UDP发送数据
步骤: ①创建发送端Socket对象(DatagramSocket)
②创建数据,并把数据打包
③调用Socket对象的方法发送数据
④关闭发送端
//创建发送端的Socket对象(DatagramSocket)
DatagramSocket datagramSocket = new DatagramSocket();
//创建数据,并把数据打包
byte[] bytes ="数据".getBytes();
int dataLength =bytes.length;
InetAddress inetAddress =InetAddress.getByName("192.168.20.100");
int port =1800;
DatagramPacket datagramPacket =new DatagramPacket(bytes,datalength,inetAddress,port);
//发送数据(调用datagramSocket对象的方法)
datagramSocket.send(datagramPacket);
//关闭发送端
datagramSocket.close();
2.UDP接收数据
步骤: ①创建接收端的Socket对象(DatagramSocket)
②创建一个数据包,用来接收数据
③调用Socket对象的方法接收数据
④解析数据包,并把数据在控制台显示
⑤关闭接收端
//创建接收端Socket对象(DatagramSocket)
DatagramSocket datagramSocket =new DatagramSocket(1800);
//创建一个数据包,用来接收数据
byte[] bytes =new byte[1024];
int length =bytes.length;
DatagramPacket datagramPacket =new DatagramPacket(bytes,length);
//调用Socket对象(DatagramSocket)的方法接收数据
datagramSocket.receive(datagramPacket);
//解析数据包,并把数据在控制台显示
byte[] datas =datagramPacket.getData();
int len =datagramPacket.getLength();
System.out.println(new String(datas,0,len));
//关闭接收端
datagramSocket.close();
1.7 TCP通信程序
Java为客户端提供Socket类,为服务器端提供ServerSocket类
1.TCP发送数据
步骤: ①创建客户端的Socket对象(Socket)
②获取输出流,写数据
③释放资源
-
-
Socket(InetAddress address, int port)
-
//创建客户端的Socket对象(Socket)
//Socket socket =new Socket(InetAddress.getByName("192.168.21.1"),10001);
Socket socket =new Socket("192.168.21.1",10001);
//获取输出流,写数据
OutputStream outputStream =socket.getOutputStream();
outputStream.write("数据".getBytes());
//释放资源
socket.close();
2. TCP接收数据
步骤: ①创建服务器端的Socket对象(ServerSocket)
②获取输入流,读数据,并把数据显示在控制台
③释放资源
-
-
ServerSocket(int port)
-
//创建服务器端的Socket对象(ServerSocket)
ServerSocket serverSocket =new ServerSocket(10001);
//获取输入流,读数据,并把数据显示在控制台
Socket socket =serverSocket.accept(); //监听并接受客户端的连接,返回Socket对象
InputStream inputStream =socket.getInputStream();
byte[] bytes =new bytes[1024];
int len =inputStream.read(bytes);
String datas =new String(bytes,0,len);
//释放资源
socket.close();
serverSocket.close();