当前位置: 首页 > news >正文

commons-net - 详解

概述

网络编程Java库,广泛用于实现与多种网络协议的交互,如FTP、SMTP、POP3、IMAP、NNTP和Telnet等。

maven依赖

<!-- https://mvnrepository.com/artifact/commons-net/commons-net --><dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.12.0</version></dependency>

示例

FTPClient ftpClient = new FTPClient();
ftpClient.connect("ftp.example.com", 21);  // 连接到FTP服务器
ftpClient.login("username", "password");    // 登录验证
ftpClient.enterLocalPassiveMode();          // 使用被动模式传输文件
FTPFile[] files = ftpClient.listFiles(); // 列出当前目录下的文件
for (FTPFile file : files) {
System.out.println(file.getName()); // 打印文件名
}
ftpClient.makeDirectory("/newdir"); // 创建新目录
ftpClient.deleteFile("/path/to/file.txt"); // 删除文件
if (ftpClient.isConnected()) {
ftpClient.logout();          // 退出登录
ftpClient.disconnect();      // 断开服务器连接
}

常用API

客户端相关

客户端说明
FTPClientFTP协议 TCP客户端,支持文件上传、下载等操作。
FTPSClientFTPS协议 TCP客户端,通过 SSL/TLS 加密传输。
FTPHTTPClient同时支持FTP协议和HTTP协议TCP客户端,用于同时处理文件传输和网页访问的场景
IMAPClientIMAP协议 TCP客户端, 支持从邮件服务器上直接访问和管理邮件,支持邮件文件夹和实时同步功能。
IMAPSClientIMAPS协议 TCP客户端,通过 SSL/TLS 加密传输。
AuthenticatingIMAPClientIMAP协议 协议身份验证TCP客户端
SMTPClientSMTP协议 TCP客户端,支持邮件发送。
SMTPSClientSMTPS协议 TCP客户端,通过 SSL/TLS 加密传输。
AuthenticatingSMTPClientSMTP协议 协议身份验证TCP客户端
POP3ClientPOP3协议 TCP客户端,支持邮件接收。
POP3SClientPOP3S协议 TCP客户端,通过 SSL/TLS 加密传输。
ExtendedPOP3ClientPOP3协议扩展的TCP客户端,实现更复杂的邮件传输功能
TelnetClientTelnet协议 TCP客户端,支持远程登录。
NNTPClientNNTP协议 TCP客户端,支持网络新闻传送协议
RExecClientRExec协议TCP客户端,支持远程执行命令功能
RCommandClientRCommand协议TCP客户端,支持客户端和服务器之间建立连接。
RLoginClientRLogin协议TCP客户端,网络远程登录另一台计算机
DiscardTCPClientRFC863协议的TCP客户端,支持发送数据到服务器并接收服务器响应
EchoTCPClientTCP连接测试客户端,支持验证TCP 服务器是否在指定端口上运行,并且能够正确响应客户端的连接请求。
CharGenTCPClientRFC864 字符生成器协议TCP客户端,用于网络设备测试和调试。
DaytimeTCPClient时间协议TCP客户端,支持获取服务器的日期和时间。
TimeTCPClient时间协议TCP客户端,支持获取服务器的日期时间信息。
FingerClientFinger协议客户端,用于查询远程主机信息。
WhoisClientWhois协议客户端,用于查询域名及IP地址注册信息,
CharGenUDPClientRFC864 字符生成器协议UDP客户端,用于网络设备测试和调试。
DaytimeUDPClient时间协议UDP客户端,支持获取服务器的日期和时间。
TimeUDPClient时间协议UDP客户端,支持获取服务器的日期时间信息。
DiscardUDPClientRFC863协议的UDP客户端,支持发送数据到服务器并接收服务器响应
EchoUDPClientUDP连接测试客户端,支持验证UDP 服务器是否在指定端口上运行,并且能够正确响应客户端的连接请求。
NTPUDPClientNTP协议UDP客户端,用于从时间服务器获取准确的时间信息
TFTPClientTFTP协议UDP客户端,用于文件下载或固件升级等场景。
客户端说明
addProtocolCommandListener(ProtocolCommandListener listener)
removeProtocolCommandListener(ProtocolCommandListener listener)
实现监听和调试网络协议的命令和响应。
connect(InetAddress host)
connect(InetAddress host, int port)
connect(InetAddress host, int port, InetAddress localAddr, int localPort)
connect(String hostname)
connect(String hostname, int port)
connect(String hostname, int port, InetAddress localAddr, int localPort)
配置连接服务器的地址
disconnect()断开连接
getCharset()
setCharset(Charset charset)
获取或配置字符集
getConnectTimeout()
setConnectTimeout(int connectTimeout)
获取或配置连接超时时间
getDefaultPort()
setDefaultPort(int port)
获取或设置默认端口号
getDefaultTimeout()
setDefaultTimeout(int timeout)
获取或设置默认超时时间
getKeepAlive()
setKeepAlive(boolean keepAlive)
获取或配置是否保持长时间的网络连接
getLocalAddress()获取本地地址
getLocalPort()获取本地端口号
getProxy()
setProxy(Proxy proxy)
获取或配置代理对象
getRemoteAddress()
获取远程地址
getRemotePort()
获取远程端口号
getServerSocketFactory()
setServerSocketFactory(ServerSocketFactory factory)
获取或设置ServerSocketFactory
getSoLinger()
setSoLinger(boolean on, int val)
获取或设置Socket连接的关闭行为。on为true时,表示延迟val秒关闭;on为false时,等待数据发送完毕后再正常关闭Socket
getSoTimeout()
setSoTimeout(int timeout)
获取或设置‌输入/输出流操作的超时时间‌
getTcpNoDelay()
setTcpNoDelay(boolean on)
获取或设置Tcp连接是否无延迟
isAvailable()判断连接是否是可用的
isConnected()判断连接是否是否连接成功
setReceiveBufferSize(int size)配置接收缓冲区大小
setSendBufferSize(int size)配置发生缓冲区大小
setSocketFactory(SocketFactory factory)设置Socket工厂
verifyRemote(Socket socket)远程验证连接
客户端说明
FTPClient()构造方法
abort()放弃当前的数据传输
allocate(int bytes)
allocate(int bytes, int recordSize)
allocate(long bytes)
allocate(long bytes, int recordSize)
分配指定数量字节的文件空间。
appendFile(String remote, InputStream local)向一个已经存在的文件追加内容
appendFileStream(String remote)通过输出流向一个已经存在的文件追加内容
changeToParentDirectory()切换当前目录到父目录
changeWorkingDirectory(String path)切换工作目录
completePendingCommand()检查上一个命令是否已经成功完成
configure(FTPClientConfig ftpClientConfig)设置 FTP客户端配置
deleteFile(String path)删除文件
disconnect()断开网络连接
doCommand(String command, String params)发送一个 FTP 命令到服务器
doCommandAsStrings(String command, String params)发送一个 FTP 命令到服务器,并获取命令执行后的响应作为字符串数组。
enterLocalActiveMode()使用本地主动模式
enterLocalPassiveMode()使用本地被动模式
enterRemoteActiveMode(InetAddress host, int port)使用远程主动模式
enterRemotePassiveMode()使用远程被动模式
features()判断是否支持服务器功能
featureValue(String feature)获取服务器功能
featureValues(String feature)获取服务器功能数组
getAutodetectUTF8()
setAutodetectUTF8(boolean autoDetectEncoding)
获取或设置自动检测编码
getBufferSize()
setBufferSize(int bufferSize)
获取或设置缓存大小
getControlKeepAliveReplyTimeoutDuration()
setControlKeepAliveReplyTimeout(Duration timeout)
设置控制连接(通常是与 FTP 服务器的命令通道)在空闲状态下保持活跃的超时时间。
getControlKeepAliveTimeoutDuration()
setControlKeepAliveTimeout(Duration controlIdle)
指定空闲连接在被服务器关闭之前可以保持活跃的最长时间。
getCopyStreamListener()
setCopyStreamListener(CopyStreamListener copyStreamListener)
获取或设置监听器,用来监听文件传输过程中的进度,
getDataConnectionMode()获取数据连接模式
getDataTimeout()
setDataTimeout(Duration timeout)
获取或设置数据超时时间
getListHiddenFiles()
setListHiddenFiles(boolean listHiddenFiles)
获取或设置是否列出隐藏文件
getModificationTime(String path)
setModificationTime(String path, String timeval)
获取或修改文件最后修改时间
getPassiveHost()获取被动连接的IP地址
getPassiveLocalIPAddress()
setPassiveLocalIPAddress(InetAddress passiveLocalHost)
setPassiveLocalIPAddress(String ipAddress)
获取或配置本地被动模式下的IP地址
getPassivePort()
获取被动连接的端口号
getSendDataSocketBufferSize()
setSendDataSocketBufferSize(int sendDataSocketBufferSize)
获取或设置发送数据的缓冲区大小。
getReceiveDataSocketBufferSize()
setReceieveDataSocketBufferSize(int receiveDataSocketBufferSize)
获取或设置接受数据的缓冲区大小
getRestartOffset()
setRestartOffset(long offset)
获取或设置重启偏移量
getSize(String path)
获取文件大小
getStatus()
getStatus(String path)
获取文件状态
getSystemType() 获取系统类型
getSystemTypeOverride()
获取覆盖的系统类型
hasFeature(FTPCmd feature)
hasFeature(String feature)
hasFeature(String feature, String value)
判断是否有指定的功能
initiateListParsing()
initiateListParsing(String path)
initiateListParsing(String parserKey, String path)
初始化解析过程
initiateMListParsing()
initiateMListParsing(String path)
isIpAddressFromPasvResponse()
setIpAddressFromPasvResponse(boolean ipAddressFromPasvResponse)
isRemoteVerificationEnabled()
setRemoteVerificationEnabled(boolean remoteVerificationEnabled)
isUseEPSVwithIPv4()
setUseEPSVwithIPv4(boolean useEPSVwithIPv4)
listDirectories()
listDirectories(String parent)
列出当前目录下的文件夹
listFiles()
listFiles(String path)
listFiles(String path, FTPFileFilter filter)
列出当前目录下的文件
listHelp()
listHelp(String command)
获取系统帮助信息并返回完整的字符串。
listNames()
listNames(String path)
列出当前目录下的文件名
login(String user, String password)
login(String user, String password, String account)
使用提供的用户名和密码登录到FTP服务器。
logout()退出FTP服务器
makeDirectory(String path)创建一个FTP服务器的当前目录的子目录
mdtmCalendar(String path)
mdtmInstant(String path)
mlistDir()
mlistDir(String path)
mlistDir(String path, FTPFileFilter filter)
mlistFile(String path)
printWorkingDirectory()返回当前工作目录的路径名。
reinitialize()初始化
remoteAppend(String fileName)
remoteRetrieve(String fileName)
remoteStore(String fileName)
remoteStoreUnique()
remoteStoreUnique(String fileName)
removeDirectory(String path)移除文件夹
rename(String from, String to)文件重命名
retrieveFile(String remote, OutputStream local)下载文件
retrieveFileStream(String remote)下载文件
storeFile(String remote, InputStream local)文件上传
storeFileStream(String remote)文件上传
storeUniqueFile(InputStream local)
storeUniqueFile(String remote, InputStream local)
storeUniqueFileStream()
storeUniqueFileStream(String remote)
文件上传
sendNoOp()发送一个NOOP命令到FTP服务器。
sendSiteCommand(String arguments)发送一个站点特定的命令。
setActiveExternalIPAddress(String ipAddress)设置在主动模式下的外部IP地址。
setActivePortRange(int activeMinPort, int activeMaxPort)客户端设置在主动模式端口范围。
setFileStructure(int fileStructure)设置文件的结构。
setFileTransferMode(int fileTransferMode)设置传输模式。
setFileType(int fileType)
setFileType(int fileType, int formatOrByteSize)
设置文件类型和格式传送
setParserFactory(FTPFileEntryParserFactory parserFactory)配置解析工厂类
setPassiveNatWorkaroundStrategy(HostnameResolver passiveNatWorkaroundStrategy)
setReportActiveExternalIPAddress(String ipAddress)
structureMount(String path)
http://www.gsyq.cn/news/19134.html

相关文章:

  • 02020505 EF Core高级05-实体的5种状态、EntityEntry、AsNoTracking、实体状态跟踪
  • linux防火墙操作命令
  • 机器学习社会影响与导航系统研究
  • 251011
  • 实用指南:漏标(Missing Mark)问题深度解析
  • SSL/TLS加密算法:守护网络通信的安全框架
  • 理解WPF Stylet中Command=“{s:Action 方法名}“的设计与实现 - 实践
  • laya自定义滚动条
  • SigOJ提交语言帮助文档 - lkjy
  • 优维科技一面
  • 深入解析:FreeRTOS内存分配与STM32内存布局详解
  • 2025婚纱照拍摄推荐,南通造物摄影有限公司专业团队打造梦幻
  • 2025精密弹簧优质厂家推荐:蓝侨盈科技,精准弹性解决方案!
  • 有限空间作业安全无死角!AI 视觉守护人员与操作合规
  • 2025抖音推广服务商最新推荐榜:精准引流与高效转化的营销利
  • 4K Wallpaper mac v2.7.dmg 安装教程(Mac电脑详细安装步骤4K壁纸Mac下载安装)
  • 2025甘肃西服定制店推荐榜单:匠心工艺与贴心服务的完美结合
  • 2025表面瑕疵检测设备厂家最新推荐:精准高效,工业品质之选
  • 2025环氧板定制厂家推荐:一博科技材料,专业定制品质卓越!
  • CSP-S模拟29 2025.10.11
  • 最简单实用的SQL注入检测方法:Break Repair技巧详解
  • 2025螺杆泵厂家最新推荐榜:高效稳定与优质服务的行业首选!
  • 2025南通婚纱摄影最新推荐榜:创意拍摄与贴心服务的完美结合
  • 实用指南:微波雷达模块在智能家居中的具体应用案例有哪些?
  • 尝试茶叶数据集
  • 20251011
  • (第四次)回归与决策树
  • 2025机械加工实力厂家推荐:鑫铭机械专业制造,品质卓越首选
  • 高考语文做法
  • 2025石头纸设备批发厂家推荐鼎浩包装,环保高效生产首选!