qicosmos / rest_rpc

modern C++(C++11), simple, easy to use rpc framework
MIT License
1.66k stars 365 forks source link

干掉server后闪退问题 #77

Open Teacher-May opened 1 year ago

Teacher-May commented 1 year ago

大佬,我有个问题,使用简单的client端代码,和example中的server.c进行测试,如果在cs链接后,kill -9 干掉server,然后client端会崩溃

client端代码如下:

int main() {  
  rpc_client client("127.0.0.1", 9000);  
  bool r = client.connect();  
  if (!r) {  
    std::cout << "connect timeout" << std::endl;  
    //return;  
  }  
  while(1){  
      {  
        auto result = client.call<int>("add", 1, 2);  
        std::cout << result << std::endl;  
      }  

      {  
        auto result = client.call<2000, int>("add", 1, 2);  
        std::cout << result << std::endl;  
      }  

      ::usleep(100000);  
  }  
  return 0;  
}

server端用的是example中的server.c, clinet处于长链接状态,问下怎么解决这个client崩溃问题

qicosmos commented 1 year ago

是因为同步接口会抛异常,比如超时异常之类的,使用同步接口的时候需要try-catch