yyt_hac's web

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

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/

Boost C++库

Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。但Boost中也有很多是实验性质的东西,在实际的开发中实用需要谨慎。
Boost库是为C++语言标准库提供扩展的一些C++程序库的总称。
boost库1.58版 本站下载地址:

浙公网安备 33010802005082号

浙ICP备15018881号