rclient.c 2.0 KB
Newer Older
S
slguan 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/*
 * Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
 *
 * This program is free software: you can use, redistribute, and/or modify
 * it under the terms of the GNU Affero General Public License, version 3
 * or later ("AGPL"), as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */

//#define _DEFAULT_SOURCE
#include "os.h"
#include "tlog.h"
#include "trpc.h"
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
20
#include "taoserror.h"
S
slguan 已提交
21 22
#include <stdint.h>

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
23
void processMsg(char type, void *pCont, int contLen, void *ahandle, int32_t code) {
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
24 25 26 27 28
  dPrint("response is received, type:%d, contLen:%d code:%x:%s", type, contLen, code, tstrerror(code));
}

void processUpdate(void *handle, SRpcIpSet *pIpSet) {
  dPrint("ip set is changed, index:%d", pIpSet->index);
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
29 30
}

S
slguan 已提交
31
int32_t main(int32_t argc, char *argv[]) {
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
32 33

  taosInitLog("client.log", 100000, 10);
S
slguan 已提交
34 35 36 37 38
  dPrint("unit test for rpc module");

  SRpcInit rpcInit;
  memset(&rpcInit, 0, sizeof(rpcInit));
  rpcInit.localIp      = "0.0.0.0";
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
39 40
  rpcInit.localPort    = 0;
  rpcInit.label        = "APP";
S
slguan 已提交
41
  rpcInit.numOfThreads = 1;
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
42
  rpcInit.cfp          = processMsg;
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
43
  rpcInit.ufp          = processUpdate;
S
slguan 已提交
44
  rpcInit.sessions     = 1000;
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
45
  rpcInit.connType     = TAOS_CONN_UDPC;
S
slguan 已提交
46
  rpcInit.idleTime     = 2000;
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
47 48 49
  rpcInit.meterId      = "jefftao";
  rpcInit.secret       = "password";
  rpcInit.ckey         = "key";
S
slguan 已提交
50

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
51 52
  void *pRpc = rpcOpen(&rpcInit);
  if (pRpc == NULL) {
S
slguan 已提交
53
    dError("failed to initialize rpc");
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
54
    return -1;
S
slguan 已提交
55 56
  }

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
57 58 59
  SRpcIpSet ipSet;
  ipSet.numOfIps = 2;
  ipSet.index = 0;
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
60
  ipSet.port = 7000;
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
61 62
  ipSet.ip[0] = inet_addr("192.168.0.1");
  ipSet.ip[1] = inet_addr("127.0.0.1");
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
63 64

  void *cont = rpcMallocCont(100); 
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
65
  rpcSendRequest(pRpc, &ipSet, 1, cont, 100, 1);
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
66 67 68

  getchar();

S
slguan 已提交
69 70 71 72
  return 0;
}