原创 通用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 基於數據流,但一般我們需要以帶長度信息的數據包的結構來做數據交