yyt_hac's web

软件开发,编程,计算机技术,工具软件

yftpserver 1.2版

下载地址:

windows版:yftpserver.for.windows.rar (1.9MB)

linux版:yftpserver.for.linux.rar (2.1MB)


1、使用环境

理论上支持的操作系统:windows 7及以上操作系统,linux操作系统

测试过的操作系统:windows 2008 server,windows 10,centos 7.2 64(位)


2、文件说明

yftpserver.exe---------------------------------主执行程序

YCommonServerLib.dll---------------------------ycommonserverlib库文件

yftpserver.xml---------------------------------xml格式的配置文件

yftpserver.properties--------------------------properties格式的配置文件

yftpserver.ini---------------------------------ini格式的配置文件

readme.txt-------------------------------------使用说明文件

server_certs-----------------------------------使用ssl连接时的证书文件


3、新增功能

3.1 使用ycommonserverlib网络库

3.2 支持显式和隐式FTPS协议

3.3 支持xml,properties,ini格式的配置文件


4、配置文件

当3种配置文件都存在时,优先顺序为xml>properties>ini,详细信息参考配置文件中的注释

1. 要使用普通的ftp服务器,修改配置文件中的 "server.use_ssl" 为 0

2. 要使用隐式ftps服务器,修改配置文件中的 "server.use_ssl" 为 1

3. 要使用显式ftps服务器,修改配置文件中的 "server.use_ssl" 和 "server.delay_ssl" 为 1


5、安装及启动yftpserver

5.1 运行 “yftpserver /h" 显示帮助信息

yftpserver /h

usage: yftpserver OPTIONS

/registerService           Register the application as a service.

/unregisterService         Unregister the application as a service.

/displayName=name          Specify a display name for the service (only with

   /registerService).

/description=text          Specify a description for the service (only with

   /registerService).

/startup=automatic|manual  Specify the startup mode for the service (only with

   /registerService).

/help                      display help information on command line arguments

5.2 直接运行“yftpserver” 使用普通方式运行ftp 服务器

yftpserver

[2018-Apr-27 13:53:49.963378]<info>(0x0000108c): log_level:0,log_to_console:1,log_to_file:0

[2018-Apr-27 13:53:49.967365]<info>(0x0000108c): usessl:1,userawdata:1,delayssl:1

[2018-Apr-27 13:53:50.218543]<info>(0x0000108c): server.certificate_chain_file:server_certs/server.pem

[2018-Apr-27 13:53:50.220544]<info>(0x0000108c): server.private_key_file:server_certs/server.pem

[2018-Apr-27 13:53:50.222545]<info>(0x0000108c): server.key_file_format:pem

[2018-Apr-27 13:53:50.224550]<info>(0x0000108c): server.tmp_dh_file:server_certs/dh2048.pem

[2018-Apr-27 13:53:50.227550]<info>(0x0000108c): server bind ip:0.0.0.0,server port:21,io_thread_num:-1

[2018-Apr-27 13:53:50.230552]<info>(0x0000108c): pool_min_thread_num:5,pool_max_thread_num:32

[2018-Apr-27 13:53:50.236574]<info>(0x0000108c): Begin to init Ftp Server.......

[2018-Apr-27 13:53:50.238557]<info>(0x0000108c): Ftp Server Root Dir:c:\

[2018-Apr-27 13:53:50.239559]<info>(0x0000108c): Anonymous User Info:1:users\public:rwd

[2018-Apr-27 13:53:50.272581]<info>(0x0000108c): Ftp Server User Infomation:tester1:123456::rwd

[2018-Apr-27 13:53:50.277586]<info>(0x0000108c): Ftp Server pasv port range:10000-30000

[2018-Apr-27 13:53:50.280587]<info>(0x0000108c): service pump started.

5.3 运行 “yftpserver /registerService" 把ftp 服务器安装成一个windows服务

yftpserver /registerService

然后用“net start yftpserver”命令启动ftp服务器


ycommonserverlib-------一个跨平台的网络服务器框架,用于减少网络服务器程序开发中的重复劳动

ycommonserverlib网络服务器框架github地址:

ycommonserverlib(github链接)

ycommonserverlib网络服务器框架本地下载地址:

ycommonserverlib-1.0.zip (27.26 mb)


使用ycommonserverlib网络服务器框架的Windows版ftp服务器(开发测试环境Win10,Win2008Server):

yftpserver.for.windows.rar (1.4MB)

使用ycommonserverlib网络服务器框架的Linux版ftp服务器(开发测试环境CentOs 7(64位)):


   ycommonserverlib  Is a cross-platform network server framework built using c++11 and the boost library

、openssl library、poco library,but using it does not require installing these libraries.


    Its features:


    1, The use of object pool, support socket reuse

    2, Using the memory pool

    3, Thread pool of the number of threads can automatically adjust

    4, Support SSL connection

    5, Support the original data packet and (2 bytes length + data content) data packet format

    6, Support log function

    7, Can quickly generate a basic full-featured network server program

    8, No need to install third-party libraries

    9, Supports configuration files in properties, xml, ini, json format. The default configuration file is

    in the directory of program, The configuration file name is (program name.extension) and the extension

    is been based on the configuration file format.

    

    Directory content:


    include---------------include files of ycommonserverlib

    lib-------------------lib files of ycommonserverlib

    YEchoServer-----------A sample of simple echo server using ycommonserverlib

    yftpserver------------A sample of simple ftp server using ycommonserverlib

    EchoClient------------A client program using to test YEchoServer

    TestConfig------------A sample program using config file of ycommonserverlib


    How to use ycommonserverlib please refer to yechoserver and yftpserver

    

    =================================================================================================


    ycommonserverlib是一个使用c++11 和 boost库、openssl库、poco库生成的跨平台网络服务器框架,但是使用它并不需要安装这些库。


    它的特点:


    1、使用对象池,支持socket复用

    2、使用内存池

    3、使用可自动调节线程数的线程池

    4、支持SSL连接

    5、支持原始数据包及(2字节长度+数据内容)数据包格式

    6、支持日志功能

    7、能快速生成基本功能齐全的网络服务器程序

    8、不需要安装第三方库

    9、支持properties,xml,ini,json格式的配置文件,默认配置文件为程序所在目录下文件名为(程序名.扩展名)的文件,展名可以为根据配置文件的而定


    目录内容:


    include---------------ycommonserverlib库的头文件

    lib-------------------ycommonserverlib库的库文件

    YEchoServer-----------一个使用ycommonserverlib生成的echo服务器

    yftpserver------------一个使用ycommonserverlib生成的FTP服务器

    EchoClient------------用于测试echo服务器的客户端

    TestConfig------------一个使用ycommonserverlib配置文件的例子


    具体使用方法请参考yechoserver和yftpserver


YFtpServer--------一个用boost实现的ftp服务器

      最近尝试用boost库进行跨平台编程,写了一个ftp服务器,基本可以做到一份核心代码,各个平台通用(主要包括安卓,IOS,windows,linux等),界面部分各个平台需要分别实现。

       主要使用了std::wstring和boost::filesystem::path来处理字符串和文件路径,在发给ftp客户端时统一转化成UTF8编码,在使用

boost::filesystem::path处理中文文件名和路径的过程中,发现在安卓上出现乱码,比如path(L"c:\\测试").generic_wstring()返回的就是乱码,最后修改了boost库的path.hpp文件,修改内容如下:

template <class U> inline

void my_dispatch(const std::string& c, U& to)

{

if (c.size())

{

std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> conv;

# ifdef BOOST_WINDOWS_API

to = conv.from_bytes(c);

#else

to = c;

#endif

}

}


template <class U> inline

void my_dispatch(const std::wstring& c, U& to)

{

if (c.size())

{

std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> conv;

# ifdef BOOST_WINDOWS_API

to = c;

#else

to = conv.to_bytes(c);

#endif

}

}


    template <class Source>

    path(Source const& source,

      typename boost::enable_if<path_traits::is_pathable<

        typename boost::decay<Source>::type> >::type* =0)

    {

      //path_traits::dispatch(source, m_pathname);

    my_dispatch(source, m_pathname);

    }

增加了2个my_dispatch模板函数,把path_traits::dispatch(source, m_pathname)改成my_dispatch(source, m_pathname);

这样修改之后,boost::filesystem::path处理中文就正常了。


编译了windows版、linux版、安卓版:

windows版下载地址:

yftpserver.exe (841.00 kb)

centos 7 64位版下载地址:

yftpserver.rar (585.23 kb)

安卓版下载地址:

yftpserver.apk (519.17 kb)

安卓版截图:



新开发的应用程序外壳代理软件

      本软件通过把tcp网络通信截获模块注入到普通应用程序中,从而截获普通应用程序的tcp通信,然后把tcp通信通过管道技术转发给代理客户端模块,代理客户端模块根据代理客户端配置文件选择相应的通信方式把tcp通信发给真正的应用服务器,由于代理客户端模块通常会注入到可联网的进程中,并且可以设置代理服务器,从而使不具备使用代理服务器功能的普通应用程序具有使用代理服务器的能力,而且具有一定的穿透防火墙的能力。

下载地址:

release.rar (259.51 kb)

使用说明:

readme.txt 


LZMA SDK----------------一个压缩算法开发包

   LZMA SDK是一个多语言,跨平台,开源的压缩算法开发包,2001年被首次应用于7-Zip压缩工具中,是 2001年以来得到发展的一个数据压缩算法。它使用类似于 LZ77 的字典编码机制,在一般的情况下压缩率比 bzip2 为高,用于压缩的可变字典最大可达4GB。

站下载地址(15.05 beta版):

lzma1505.7z (943.2KB)

官网:
http://www.7-zip.org/

CURL------------------一个非常强大的工具和开发包

       CURL是一个开源的命令行工具和开发包,它支持多平台,使用URL语法进行数据传输,支持的协议有 DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMTP, SMTPS, Telnet 和TFTP。CURL支持SSL证书,HTTP,FTP上传,HTTP,HTTP基于表单的上传,代理,HTTP / 2,cookies,用户名+密码认证(Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos),文件续传,隧道代理等等。

本站下载地址:

curl-7.42.1.tar.gz (4.1MB)

官网:

http://curl.haxx.se/

浙公网安备 33010802005082号

浙ICP备15018881号