原创 epoll模型的理解封裝與應用

    自己以前寫TCP服務器,並不需要考慮到併發與資源的問題,使用的都是單獨線程處理單個TCP連接的方式(說謂的PPC/TPC模型)。如今自己做高併發服務器,必須處理好這些問題。因爲用的是linux2.6,因此選用epoll作爲I/O多路

原创 SSH2.0編程 ssh協議過程實現

    之前爲了自己做一套SSH,先自己實現了一套telnet。但經過這麼多天的苦逼,發現以前的工作都是徒勞。ssh的協議很繁雜,核心的內容在於密碼算法,而且自己很難在網上找到周全的細節講解與詳細的實現,只有靠自己刷RFC和問大神還有就是靠

原创 epoll模型的理解封裝與應用

    自己以前寫TCP服務器,並不需要考慮到併發與資源的問題,使用的都是單獨線程處理單個TCP連接的方式(說謂的PPC/TPC模型)。如今自己做高併發服務器,必須處理好這些問題。因爲用的是linux2.6,因此選用epoll作爲I/O多路

原创 epoll模型的理解封裝與應用

    自己以前寫TCP服務器,並不需要考慮到併發與資源的問題,使用的都是單獨線程處理單個TCP連接的方式(說謂的PPC/TPC模型)。如今自己做高併發服務器,必須處理好這些問題。因爲用的是linux2.6,因此選用epoll作爲I/O多路

原创 ssh祕鑰交換詳解與實現 diffie-hellman-group-exchange-sha

    ssh的DH祕鑰交換是一套複合幾種算法的祕鑰交換算法。在RFC4419中稱爲diffie-hellman-groupX-exchange-shaX 的算法(也有另一種單純的 rsaX-shaX 交換算法)。本文就以diffie-he

原创 SOCKET 實現NAT 穿越

    在當前IPv4NAT盛行的網絡環境下,兩個用戶要直接進行P2P連接是非常困難的。較好的解決辦法是藉助含公網的用戶或是服務器中介實現P2P連接。    NAT:Network Address Translation,網絡地址轉換。由於

原创 OnlineJudge 離線題庫採集

    過段時間要把以前的OJ換掉,我負責VirtualJudge的部分。需要用C與PHP寫一個Linux下的VJudge。    在此之前,將以前寫給自己學弟學妹用的OJ離線題庫的採集程序改進了一下。支持國內一些知名高校的OJ,爲之後VJ

原创 一套跨平臺五子棋網遊的開發經歷(二)

接上文http://wchrt.blog.51cto.com/8472636/1661524    4、遊戲通信協議設計    因爲是PC、手機都能玩的遊戲,考慮到糟糕的手機網絡環境,通信採用客戶端單方發起請求,服務器回覆的方式,使服務器不

原创 SSH2.0編程 ssh協議過程實現

    之前爲了自己做一套SSH,先自己實現了一套telnet。但經過這麼多天的苦逼,發現以前的工作都是徒勞。ssh的協議很繁雜,核心的內容在於密碼算法,而且自己很難在網上找到周全的細節講解與詳細的實現,只有靠自己刷RFC和問大神還有就是靠

原创 SMTP編程 郵件服務器

剛開始做郵件服務器開發,一切都是茫然的。在書上網上都很難找到一套完整的郵件服務器開發教程。在個人的摸索中碰到了很多蛋疼得問題。現終於完成了,將我的開發經驗分享給大家。 開發環境:vs2012 mfc 注意事項:1、 網絡環境:作爲郵件服務器

原创 一套跨平臺五子棋網遊的開發經歷(一)

    閒來無事,因自己想要在服務器開發方面進行更深入的學習,積累更豐富的經驗。決定寫一套網絡遊戲的c/s。    因爲主要目的是服務器的開發,因此遊戲我選用規則較爲簡單、畫面特效沒有要求的回合制遊戲:五子棋。我曾經在剛接觸編程的時候自己在

原创 telnet編程 客戶端 服務器

    最近學習ssh協議,爲了方便,自己先實現一套telnet服務,以便之後套用ssh(自己進了一個深坑)。    客戶端:    先從telnet客戶端做起。這裏先給出RFC的中文文檔鏈接:http://oss.org.cn/man/d

原创 epoll模型的理解封裝與應用

    自己以前寫TCP服務器,並不需要考慮到併發與資源的問題,使用的都是單獨線程處理單個TCP連接的方式(說謂的PPC/TPC模型)。如今自己做高併發服務器,必須處理好這些問題。因爲用的是linux2.6,因此選用epoll作爲I/O多路

原创 廣播搜尋服務器的動態IP

    我服務器放在景區鎮上租的住處裏,附近經常因爲施工或是亂開挖之類的導致斷電。我用的電信寬帶。每次斷電之後服務器自動重啓就得重新分配一個ip。因爲用了域名服務,重啓後能根據域名查詢到新的IP。    但是,我還是嚐到了幾次找不到服務器I