Udp
Udp服务端
实现步骤:
- 创建Udp对象,监听端口
- 创建数据包(数据包,数据长度)
- 接收数据包(数据包)
- 读取数据包,并输出
将字节数组转化为字符串 - 响应客户端消息(设置数据包)
- 发送数据包
//监听端口号
DatagramSocket datagramSocket = new DatagramSocket(6666);
//创建数据包
byte[] buff = new byte[1024];
DatagramPacket packet = new DatagramPacket(buff,buff.length());
//接收数据包
datagramSocket.receive();
System.out.println("数据包已经接收到了")
//读取数据包
byte[] data = package.getData();
String strToData = new String(data);
System.out.println("读取到的数据为"+strToData().trim())
//响应客户端消息
if ("天王盖地虎".equals(strToByte.trim())){
packet.setData("宝塔镇河妖~".getBytes());
}else{
packet.setData("滚!别来沾边~".getBytes());
}
//发送消息
datagramSocket.send(packet);
udp客户端
实现步骤:
- 使用DatagramSocket()进行配置主机和端口号
- 创建连接
- 创建数据包DatagramPacket(buff,buff.length())
- 将字符串转为字节,存入数据包package.setData(“”.getbytes())
- 接收数据请求datagramSocket().receive(packet)
- 获取字节数组,package.getData()
- 将字节转换字符
- 输出响应值
package com.bohai.project.day_7_15;
import java.io.IOException;
import java.net.*;
import java.nio.charset.StandardCharsets;
/**
* @author bohai
* @date :2024-07-15-9:57
* @description: Udp客户端
*
* 接收发送消息使用dataGramSocket
* 设值取值使用dataGramPackage
*
**/
public class UdpClient {
public static void main(String[] args) {
try (DatagramSocket datagramSocket = new DatagramSocket();){
datagramSocket.connect(InetAddress.getByName("192.168.199.132"),6666);
//创建数据包
byte[] buff = new byte[1024];
DatagramPacket packet = new DatagramPacket(buff,buff.length);
//todo 将字符串转换为字节
packet.setData("天王盖地虎".getBytes());
//发送数据
datagramSocket.send(packet);
//接受数据响应数据
//回复客户端
datagramSocket.receive(packet);
byte[] data = packet.getData();
String strReceive = new String(data);
System.out.println("响应数据:"+strReceive);
} catch (SocketException | UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用java实现ftp文件上传
- 使用输入流读取文件流
- 创建FtpClient()对象
- 连接ftpcontent(), 登录ftplogin()
- 指定上传文件类型setFileType
- 上传文件storefie()
package com.bohai.project.day_7_15;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import java.io.FileInputStream;
import java.io.IOException;
/**
* @author bohai
* @date :2024-07-15-12:08
* @description: 图片上传
**/
public class ClientFtpPicture {
public static void main(String[] args) {
//使用输入流,获取本地图片流
try(FileInputStream fileInputStream = new FileInputStream("F:\\桌面\\捷丰星球\\西安建筑科技大学华清学院\\2024年各科作业\\软件测试上机作业\\第二次\\project001\\微信截图_20240712150012.png");) {
//创建ftp连接
FTPClient ftpClient = new FTPClient();
//连接ftp
ftpClient.connect("192.168.199.100",21);
//登录ftp连接
ftpClient.login("bailongma","123456");
//指定文件类型
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
//上传文件
boolean isSuccess = ftpClient.storeFile("123.jpg", fileInputStream);
System.out.println(isSuccess);
} catch (IOException e) {
e.printStackTrace();
}
}
}
获取ftp服务器中的文件
package com.bohai.project.day_7_15;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @author bohai
* @date :2024-07-15-11:52
* @description: ftp客户端
**/
public class FtpClient {
public static void main(String[] args) {
try {
FTPClient ftpClient = new FTPClient();
//
ftpClient.connect("192.168.199.100",21);
ftpClient.login("bailongma","123456");
//获取文件列表
FTPFile[] ftpFiles = ftpClient.listFiles();
for (FTPFile files :ftpFiles){
System.out.println(files.getName());
//时间格式化
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
//获取时间
Date time = files.getTimestamp().getTime();
System.out.println(simpleDateFormat.format(time));
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
标签:ftp,UDP,java,编程,packet,import,new,数据包
From: https://blog.csdn.net/m0_48851832/article/details/140451211