Commons-Net

介绍

Commons-Net库参考Apache Commons Net,基于仓颉语言实现了许多基本Internet协议的客户端,提供基本的协议访问。支持的协议包括 Echo、Finger、FTP、NNTP、NTP、POP3(S)、SMTP(S)、Telnet 和 Whois。

特性

  • 实现了对多种网络协议的支持,提供了高层次API,开发者可以快速上手。
  • 库中包含了很多底层实现,开发者可以通过这些自定义实现自己的客户端。
  • 支持通过HTTP和SOCKS代理进行网络连接。
  • 支持安全传输选项,如SSL/TLS,确保数据在传输过程中的安全。

软件架构

Commons-Net主要包含两部分,其中之一是对网络协议客户端的实现, 另一部分是一些网络相关工具的实现。它的核心是实现了各种网络协议的Client类。其中两个核心抽象类:

  • SocketClient 是所有TCP实现的基类
  • DatagramSocketClient 是所有UDP实现的基类

提供的各类Internet协议的客户端派生自以上实现。

源码结构

.
├── doc
│  ├── html
│  ├── readme-image
│  └── user_manual.md
├── src
│  ├── bsd
│  ├── chargen
│  ├── daytime
│  ├── echo 
│  ├── finger
│  ├── imap
│  ├── io
│  ├── nntp
│  ├── ntp
│  ├── pop3
│  ├── smtp
│  ├── telnet
│  ├── tftp
│  ├── time
│  ├── whois
│  ├── datagramsocket_client.cj
│  ├── ......cj
│  └── socket_factory.cj
├── Doxyfile
├── LICENSE
├── README.md
├── cjpm.toml
└── cov.sh

主要文件夹说明:

  • doc:API文档、用户手册和库中使用到的图片
  • example:部分使用示例
  • src:主要源代码

接口说明

主要类和函数接口说明,详见 API 文档

使用说明

编译构建(Win/Linux)

Windows编译

cjpm build

Linux 编译

cjpm build

功能示例

主要功能使用示例,详见 用户手册

开源协议

本项目基于 Apache License 2.0 ,请自由的享受和参与开源。

参与贡献

欢迎给我们提交PR,欢迎给我们提交Issue,欢迎参与任何形式的贡献。