爱意满满的作品展示区。
typcn

纯 C++ 写了一个论坛,求测试

  •  8
     
  •   typcn ·
    typcn · May 7, 2015 · 16971 views
    This topic created in 4024 days ago, the information mentioned may be changed or developed.

    BUG 可能很多,缓存溢出啊,XSS 啊都是有可能的,有问题的话告诉我。

    支持 Markdown 发帖回帖,登陆强制使用 Google Twitter GitHub 的 OAuth

    因为很多配置是写死的,而且代码也比较乱,过几天整理一下,然后写个大致的安装教程,就开源到 GitHub 上。

    服务器放在 Google Cloud 上,用了 CloudFlare 的 SSL。

    URL -> https://leanclub.org/

    Supplement 1  ·  May 7, 2015
    刚刚 502 的问题已修复,在主数据库连接出现问题,返回了空内容的时候,程序依然会尝试渲染 Markdown ,因为指针不存在返回了,返回之后又尝试释放了一次指针,导致 502 ,现在应该没事了
    182 replies    2015-07-27 23:35:17 +08:00
    1  2  
    yangff
        1
    yangff  
       May 7, 2015 via Android
    过来帮你顶一发 跑)
    Troevil
        2
    Troevil  
       May 7, 2015
    速度感人
    powerfj
        3
    powerfj  
       May 7, 2015
    有一个问题,为什么用纯C++写..
    kindlepaper
        4
    kindlepaper  
       May 7, 2015 via iPhone
    C++好牛逼,好底层,好快啊
    笑尿......
    typcn
        5
    typcn  
    OP
       May 7, 2015
    @powerfj 练练手。。。。其实还是闲的蛋疼
    @Troevil 到底是快还是慢呢?我这电信非常快啊,倒是联通连接 CloudFlare 可能有点问题。
    Troevil
        6
    Troevil  
       May 7, 2015
    @typcn
    刚刚 :南京电信 不挂代理几乎打不卡
    现在: 貌似正常打开了,是间接性抽风吗。。
    typcn
        7
    typcn  
    OP
       May 7, 2015
    @Troevil 现在墙对 CloudFlare 就像对当年的 Google 一样,但是一旦打开的话,内容就有缓存了,再打开就快了
    Troevil
        8
    Troevil  
       May 7, 2015
    @typcn 话说使用了pjax吗
    typcn
        9
    typcn  
    OP
       May 7, 2015   ❤️ 1
    @Troevil 不是用的 pjax 库,但是用了 pushState + ajax
    Arnaud
        10
    Arnaud  
       May 7, 2015


    Hello 你好 张国荣来了
    vSignup
        11
    vSignup  
       May 7, 2015
    Time: 0.001472s
    ilancelot
        12
    ilancelot  
       May 7, 2015
    和你博客一样的主题风格
    msxcms
        13
    msxcms  
       May 7, 2015
    其实是汇编写的
    typcn
        14
    typcn  
    OP
       May 7, 2015
    @Arnaud 别 spam 到这啊。。。我写的还在测试,水水无所谓。。
    46fo
        15
    46fo  
       May 7, 2015
    printf ?
    typcn
        16
    typcn  
    OP
       May 7, 2015
    @xdeng 纯 C++ ,boost::asio ,直接监听 80 端口
    typcn
        17
    typcn  
    OP
       May 7, 2015
    @xdeng 纯 C++ ,boost::asio ,Socket 直接监听 80 端口
    ugmc
        18
    ugmc  
       May 7, 2015
    这速度确实神一般。。。。
    46fo
        19
    46fo  
       May 7, 2015
    @typcn 那 怎么 格式化 内容? 解析模板?
    46fo
        20
    46fo  
       May 7, 2015
    @typcn 看错了 你这应该是 ajax 异步加载的
    beautifultable
        21
    beautifultable  
       May 7, 2015
    间歇502……
    liujiantao
        22
    liujiantao  
       May 7, 2015 via Android
    C++写?没必要吧。。。ty肯定是锻炼能力
    typcn
        23
    typcn  
    OP
       May 7, 2015
    @xdeng 模板是用的 mustache
    @beautifultable CloudFlare 没有健康检查蛋疼,有的时候由于线程的问题可能会崩掉,所以我开了两个,用 CF 自动分配,看来我得用 HAProxy 了
    vSignup
        24
    vSignup  
       May 7, 2015
    @typcn 萝莉你头像呢
    typcn
        25
    typcn  
    OP
       May 7, 2015
    @vSignup 吃了!
    typcn
        26
    typcn  
    OP
       May 7, 2015
    @beautifultable *** Error in `./leanclub': free(): invalid next size (fast): 0x00007ff0080141f0 *** 找到原因了,一会修修
    Tink
        27
    Tink  
    PRO
       May 7, 2015 via iPhone
    。。。。。
    szieziw
        28
    szieziw  
       May 7, 2015
    顶,一直做下去就好了,贵在坚持
    choury
        29
    choury  
       May 7, 2015
    你牛逼,我还只是给我的web服务器整了一个C++的cgi接口,你这整个网站都弄出来了
    typcn
        30
    typcn  
    OP
       May 7, 2015
    @choury 哈哈,主要还是归功于各种开源库
    BetaLe
        31
    BetaLe  
       May 7, 2015 via Android
    很快啊
    choury
        32
    choury  
       May 7, 2015
    @typcn 居然还有spdy支持,当初我实现了一个spdy/3.1 但是效率还不如http/1.1,你这部分也开源吗
    Twinkle
        33
    Twinkle  
       May 7, 2015
    你厉害..
    typcn
        34
    typcn  
    OP
       May 7, 2015
    @choury 其实我只实现了 HTTP ,SPDY 是 CloudFlare 实现的,这部分建议参考 nginx
    choury
        35
    choury  
       May 7, 2015
    @typcn 那就算了,我还是直接搞http2吧
    lincanbin
        36
    lincanbin  
       May 7, 2015
    http://www.94cb.com/
    有的页面比我用PHP写的还要快两三倍啊。
    搞得我也想用C++重写了。
    evlos
        37
    evlos  
       May 7, 2015 via iPhone
    @Arnaud 无意义 Spam @
    chaucerling
        38
    chaucerling  
       May 7, 2015
    这酸爽的速度
    evlos
        39
    evlos  
       May 7, 2015 via iPhone
    @Arnaud 无意义 Spam @Livid
    itfanr
        40
    itfanr  
       May 7, 2015
    牛叉啊 用C++写论坛!
    tinkerer
        41
    tinkerer  
       May 7, 2015
    同学, 怎么这样了。。。
    lincanbin
        42
    lincanbin  
       May 7, 2015
    @typcn Web Server也是你自己实现的话,你做过并发测试吗?
    Livid
        43
    Livid  
    MOD
    PRO
       May 7, 2015 via Android   ❤️ 1
    @evlos OK 删掉了两条
    typcn
        44
    typcn  
    OP
       May 7, 2015
    @lincanbin 我在本地做了并发测试,反序列化 JSON 并输出,在 4 核的 VM 上两万左右。
    Roboo
        45
    Roboo  
       May 7, 2015 via Android
    不错
    VYSE
        46
    VYSE  
       May 7, 2015
    原来用http://www.webtoolkit.eu写过一个系统,这个轮子简单些
    zhoujg77
        47
    zhoujg77  
       May 7, 2015
    顶!
    udonmai
        48
    udonmai  
       May 7, 2015
    好酷啊啊啊,什么时候请务必写篇科普文让我拜读啊
    typcn
        49
    typcn  
    OP
       May 7, 2015
    @VYSE 我觉得异步的会好一点
    typcn
        50
    typcn  
    OP
       May 7, 2015
    @udonmai 不敢当,代码写的不很好,还在纠结开源
    phx13ye
        51
    phx13ye  
       May 7, 2015
    按下一页显示false是什么鬼
    znoodl
        52
    znoodl  
       May 7, 2015 via iPad
    其实这个帖子是发给前天问c++能干嘛的那个人看的
    VYSE
        53
    VYSE  
       May 7, 2015
    @typcn 那个也用了异步asio,这库后来merge进了boost
    evlos
        54
    evlos  
       May 7, 2015
    Time: 0.001795s 是不是用 ms 做单位比较好?可以和其他论坛程序做对比 :)
    typcn
        55
    typcn  
    OP
       May 7, 2015
    @phx13ye 下一页空的话应该是“该页面没有任何内容”才对啊
    @evlos 计算时间是按 CPU 时钟的,只能先算出来除以 CLOCK_PER_SEC ,默认是秒,* 1000 就可以了
    800126
        56
    800126  
       May 7, 2015 via Smartisan T1
    膜拜中。
    ljcarsenal
        57
    ljcarsenal  
       May 8, 2015
    厉害。。。
    wind3110991
        58
    wind3110991  
       May 8, 2015
    膜拜下,楼主开源时记得@ 一下我,楼主写c++多少年了?
    wind3110991
        59
    wind3110991  
       May 8, 2015
    再mark下,这网页刷新速度真快。。。
    owlsec
        60
    owlsec  
       May 8, 2015 via iPhone
    简直屌。。
    LINAICAI
        61
    LINAICAI  
       May 8, 2015
    破坏了c++在我心目中的速度形象。。。
    LINAICAI
        62
    LINAICAI  
       May 8, 2015
    切换分类好慢好卡的感觉 没有做异步吗
    另外黑色背景好难受啊
    不过好酷的样子
    loading
        63
    loading  
       May 8, 2015 via Android
    用的什么数据库,这个性能瓶颈怎么没人问?
    lvfujun
        64
    lvfujun  
       May 8, 2015
    @typcn 楼主你写了多长时间才写出这个网站的?
    oimotis
        65
    oimotis  
       May 8, 2015
    在手机上看到,直接吓尿了,赶紧爬起床尿尿,顺便用电脑给楼主回个贴支持一下!
    heqichang
        66
    heqichang  
       May 8, 2015
    强悍,支持开源顶一个^_^
    init
        67
    init  
       May 8, 2015
    开源不? 想学习啊
    silvernoo
        68
    silvernoo  
       May 8, 2015
    屌屌哒,关注求开源。
    mahone3297
        69
    mahone3297  
       May 8, 2015
    赞一个。。。
    xuhaoyangx
        70
    xuhaoyangx  
       May 8, 2015
    速度感人。不知道是不是网速问题
    xuhaoyangx
        71
    xuhaoyangx  
       May 8, 2015
    赞一个....
    udonmai
        72
    udonmai  
       May 8, 2015
    @typcn 可能你对很多东西要求比较高啦,如果之后优化的好的话,还是很期待开源或者写文章讲讲哒,毕竟 C++ 写 web 是很久以前出现的事情,现在没几个人做过,也不了解。比如我的话,可能能想到的就是先得自己实现一个 cgi,然后如你所说的要有处理 HTTP 请求的功能快,比如 web server,再者是逻辑代码,就像 web 框架,框架也得有很多功能,渲染页面等等。不知道我哪里漏掉了,总之这并不是一个很轻松的任务,至少在我看来,所以我很想看看你的思路,好好学习一番~

    谢谢,总之,加油~
    MrJing1992
        73
    MrJing1992  
       May 8, 2015
    牛!
    qqjt
        74
    qqjt  
       May 8, 2015
    厉害啊
    udonmai
        75
    udonmai  
       May 8, 2015
    @typcn http://www.tutorialspoint.com/cplusplus/cpp_web_programming.htm 这个文档看上去还挺人气的,不知道思路一不一样?
    qqjt
        76
    qqjt  
       May 8, 2015
    点帖子里的用户名 会404 not found,是还没做用户页吗
    typcn
        77
    typcn  
    OP
       May 8, 2015
    @wind3110991 我 16 岁,没多少年。。
    @LINAICAI 为了用户隐私,服务器在国外,如果网络不好会很慢,墙对这个 CDN 对当时的 Google 一样,非常丢包

    @lvfujun 一个星期
    @qqjt 是的还没做
    xieyudi1990
        78
    xieyudi1990  
       May 8, 2015
    以前用C用异步socket写过一个论坛系统

    如果只是个人使用, 个人专业有不在前端技术这块, 用C写一个完全不需要太久.
    xieyudi1990
        79
    xieyudi1990  
       May 8, 2015
    @xieyudi1990 s/用C写一个完全不需要太久./用C写一个完全是可行的, 且不需要太久./g
    typcn
        80
    typcn  
    OP
       May 8, 2015
    @xieyudi1990 纯 C 各种繁琐啊。。麻烦
    ve2x
        81
    ve2x  
       May 8, 2015
    Time: 0.000369s
    Winny
        82
    Winny  
       May 8, 2015
    好厉害
    ipconfiger
        83
    ipconfiger  
       May 8, 2015   ❤️ 1
    以前在学校的时候就跟一个硕牛在BBS上打嘴仗,当时用php在写论坛,他非常的看不起各种高级语言,属于汇编原教执主义者,他坚持要跟我比赛写一个BBS,他用汇编。在我的BBS上线后的某一天,他居然跑来注册了,并发帖宣布他的BBS走出了重要的一步,他用汇编重写了整个HTTP协议栈,现在终于可以处理http请求了......
    master13
        84
    master13  
       May 8, 2015
    ERR_SSL_VERSION_OR_CIPHER_MISMATCH
    顺便请教一句,C++写的和现在快速开发的论坛相比,优势在哪里?
    lvfujun
        85
    lvfujun  
       May 8, 2015
    @typcn 不然你以为为什么要有脚本语言?
    C++写这种网站就只能练练手.如果公司都用c++写网站?那场面太美......不敢想象.
    如果楼主仅仅是抱着锻炼的心态写这个网站是非常好的.要是抱着装X的心态.....还是尽早改正.
    思想最重要语言仅仅只是工具.
    附一个我的替问
    http://v2ex.com/t/185208#reply1
    当我像你这个年纪的时候我还在搞什么抓鸡一类的东西.你比我早几年走上了正道.继续加油吧!
    lvfujun
        86
    lvfujun  
       May 8, 2015
    @master13 弊大于利.而且弊要大太多了.
    typcn
        87
    typcn  
    OP
       May 8, 2015
    @master13 没啥优势,除非写的性能太渣被攻击之类的。

    @lvfujun 我这是第一次“现学现用” C++ 写大一些的程序,就是想学学,遇到几个崩溃问题还修不了。。。
    typcn
        88
    typcn  
    OP
       May 8, 2015
    @master13 是不是 XP ?请使用 HTTP 方式打开
    v2Panda
        89
    v2Panda  
       May 8, 2015
    800126
        90
    800126  
       May 8, 2015
    围观,可惜没有前排了,很喜欢这种年轻折腾的劲头。
    bestsanmao
        91
    bestsanmao  
       May 8, 2015
    c++写web
    杀鸡用牛刀的感觉
    yulgang
        92
    yulgang  
       May 8, 2015
    This page (https://leanclub.org/) is currently offline. However, because the site uses CloudFlare's Always Online™ technology you can continue to surf a snapshot of the site. We will keep checking in the background and, as soon as the site comes back, you will automatically be served the live version. Always Online™ is powered by CloudFlare | Hide this Alert
    typcn
        93
    typcn  
    OP
       May 8, 2015
    @yulgang 刚刚发现一个导致服务器崩溃的问题,但是不知道哪里错了,所以我用 GDB 重启了一下服务端
    typcn
        94
    typcn  
    OP
       May 8, 2015
    @yulgang 点击 Retry for live version 即可
    jsq2627
        95
    jsq2627  
       May 8, 2015
    @typcn clock() 的精度是 100ms 级的。如果要获得更精确的时间,需要用到平台相关的 API。C++11 新增的 std::chrono::high_resolution_clock 似乎也可以。
    assassinpig
        96
    assassinpig  
       May 8, 2015
    觉厉,前来一顶
    jsq2627
        97
    jsq2627  
       May 8, 2015
    想问问前端用到了哪些框架组件?
    最近也想实现一个布局不复杂,但是细节比较多的界面,如果全部从头写觉得好烦。。。
    typcn
        98
    typcn  
    OP
       May 8, 2015
    @jsq2627 好的,谢谢
    @jsq2627 主要是 boost 库,异步 IO 和 Socket ,模板是 mustache
    yangff
        99
    yangff  
       May 8, 2015 via Android
    @lvfujun 然而c++纯粹输出JSON的话,其实并没有什么麻烦。
    反正用一些黑魔法可以直接把对象序列化。。不用的话也只是人工标记一下。。有些地方还会更爽其实。。
    hcymk2
        100
    hcymk2  
       May 8, 2015
    @typcn
    有时候点下一页 会直接返回false.
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5654 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 228ms · UTC 06:53 · PVG 14:53 · LAX 23:53 · JFK 02:53
    ♥ Do have faith in what you're doing.