add/get 等介面即可操作,感知不到網路存在。官方無提供 Windows 可執行檔,可從 jehiah.cz 下載移植版。安裝/啟動指令:
memcached.exe -d install // 安裝為 Windows 服務
memcached.exe -d start // 啟動服務
\r\n 結尾。add/get/del。std::map 概念。<command> <key> <flags> <exptime> <bytes> [noreply]\r\n
注意:noreply 選項在 1.2.2 版不支援,請參考 changelog。
SOCKET s = socket(AF_INET, SOCK_STREAM, 0);
sockaddr_in addr = {0};
addr.sin_family = AF_INET;
addr.sin_port = htons(11211);
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
connect(s, (sockaddr*)&addr, sizeof(addr));
char cmd[256], data[] = "test data";
sprintf(cmd, "set TestKey 0 0 %d\r\n", strlen(data));
send(s, cmd, strlen(cmd), 0); // 命令行
send(s, data, strlen(data), 0); // 資料塊
send(s, "\r\n", 2, 0); // 資料結束符
char reply[256];
int ret = recv(s, reply, sizeof(reply)-1, 0);
reply[ret] = 0;
printf("server reply: %s\n", reply); // 成功回傳 "STORED"
取得、刪除等操作遵循相同模式。完整封裝原始碼可供下載,採阻塞 Socket 對應協議,閱讀輕鬆。適合作為網路程式設計練習題。