原创 通用Makefile,自動查找源文件

objs=$(patsubst %.c, %.o, $(wildcard *.c)) #將所有的*.c文件替換成*.o, .o可以作爲目標文件. target=app   #目標應用程序變量名 CC=gcc        #編譯工具鏈指定

原创 ZeroMQ學習 (一)認識與安裝

關於ZMQ1 簡單介紹​ ZMQ(ØMQ、ZeroMQ, 0MQ)看起來像是一套嵌入式的網絡鏈接庫,但工作起來更像是一個併發式的框架。它提供的套接字可以在多種協議中傳輸消息,如線程間、進程間、TCP、廣播等。你可以使用套接字構建多對多的連

原创 ZeroMQ學習 (三)核心消息模式

4 核心消息模式​ ZMQ會自動進行連接或重連;無論是發送消息還是接收消息,ZMQ都會先將消息放入隊列中,並保證進程不會因爲內存溢出而崩潰,適時地將消息寫入磁盤;ZMQ會處理套接字異常;所有的I/O操作都在後臺進行;ZMQ不會產生死鎖。Z

原创 skynet框架應用 (十四) 登錄服務

14 登錄服務​ 現在的網絡遊戲大部分是需要登錄的,一般會有一個專門的登錄服務來處理,登錄服務要解決的問題:1、用戶登錄信息保密工作。2、實際登錄點分配工作。14.1 加密算法14.1.1 DHexchange密鑰交換算法​ DHexch

原创 skynet框架應用 (十八) http協議的服務

18 http協議的服務​ http協議的服務分爲http服務端與http客戶端,skynet服務作爲http服務端的時候,可以像其他的web服務器一樣,接收http請求並給與應答。skynet的服務作爲http客戶端的時候,可以通過ht

原创 skynet框架應用 (十一) 域名查詢

11 域名查詢​ 在 skynet 的底層,當使用域名而不是 ip 時,由於調用了系統 api getaddrinfo ,有可能阻塞住整個 socket 線程(不僅僅是阻塞當前服務,而是阻塞整個 skynet 節點的網絡消息處理)。雖然大

原创 ZeroMQ學習 (六) 信號中斷的處理

8 信號中斷的處理​ 現實環境中,當應用程序收到Ctrl-C或其他諸如ETERM的信號時需要能夠正確地清理和退出。默認情況下,這一信號會殺掉進程,意味着尚未發送的消息就此丟失,文件不能被正確地關閉等。​ 在C語言中我們是這樣處理消息的:i

原创 ZeroMQ學習 (八)PAIR-PAIR

10 PAIR-PAIR​ 線程間通信的時候,最好使用,PAIR-PAIR模式進行通信。你可以讓信號發送方使用PUSH,接收方使用PULL,這看上去可能可以,但是需要注意的是,PUSH套接字發送消息時會進行負載均衡,如果你不小心開啓了兩個

原创 skynet框架應用 (十三) 網關服務

13 網關服務​ skynet 提供了一個通用模板 lualib/snax/gateserver.lua 來啓動一個網關服務器,通過 TCP 連接和客戶端交換數據。​ TCP 基於數據流,但一般我們需要以帶長度信息的數據包的結構來做數據交