⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atm_svr_dce.c

📁 linux 多线程例子
💻 C
字号:
/******************************************************** * An example source module to accompany... * * "Using POSIX Threads: Programming with Pthreads" *     by Brad nichols, Dick Buttlar, Jackie Farrell *     O'Reilly & Associates, Inc. * ******************************************************** * atm_svr_dce.c -- * * Main module for ATM DCE server example */#include <stdio.h>#include <stdlib.h>#include <dce/exc_handling.h>#include <dce/rpc.h>#include <dce/dce_error.h>#include "atm_dce_interface.h"#include "atm_dce.h"#define SINTERFACE_SPEC            atm_v1_0_s_ifspec#define MAX_CONC_CALLS_PROTSEQ     1#define MAX_CONC_CALLS_TOTAL       1main(argc, argv)int argc;char **argv;{  unsigned32               status;  rpc_binding_vector_t     *binding_vector_p;    DPRINTF(("SERVER: about to register interface\n"));  /* register with runtime */  rpc_server_register_if(SINTERFACE_SPEC, NULL, NULL, &status);  if (status != rpc_s_ok) {    fprintf(stderr, "ERROR: rpc_server_register_if\n");    exit(1);  }  DPRINTF(("SERVER: interface registered\n"));  /* designate a protocol sequence */  rpc_server_use_all_protseqs(MAX_CONC_CALLS_PROTSEQ, &status);  if (status != rpc_s_ok) {    fprintf(stderr, "ERROR: rpc_server_use_all_protseq\n");    exit(1);  }  DPRINTF(("SERVER: protocol sequence specified\n"));  /* obtain binding vector from runtime */  rpc_server_inq_bindings(&binding_vector_p, &status);  if (status != rpc_s_ok) {    fprintf(stderr, "ERROR: rpc_server_inq_bindings\n");    exit(1);  }  DPRINTF(("SERVER: have binding vector from runtime\n"));    /* register bindings with endpoint mapper */  rpc_ep_register(SINTERFACE_SPEC, binding_vector_p, NULL, 		  (unsigned_char_t *)EP_ANNO, &status);  if (status != rpc_s_ok) {    fprintf(stderr, "ERROR: rpc_ep_register\n");    exit(1);  }  DPRINTF(("SERVER: endpoints registered\n"));  /* export binding information to name service */  rpc_ns_binding_export(rpc_c_ns_syntax_dce, (unsigned_char_t *)SERVER_NAME, 			SINTERFACE_SPEC, 			binding_vector_p, NULL, &status); if (status != rpc_s_ok) {   REPORT_DCE_ERROR(status)   exit(1);  }  DPRINTF(("SERVER: bindings exported\n"));  atm_server_init(argc, argv);    /* jump to runtime listening loop */  DPRINTF(("SERVER: entering listen\n"));  rpc_server_listen(MAX_CONC_CALLS_TOTAL, &status);  if (status != rpc_s_ok) {    fprintf(stderr, "ERROR: rpc_server_listen\n");    exit(1);  }    DPRINTF(("SERVER: out of listen\n"));}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -