00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "defs.h"
00022 #include "smsg_smi.h"
00023
00024
00025
00026
00027
00028 int main(int argc, char *argv[])
00029 {
00030 SMIQ *sqp;
00031 struct smi_msg *msg;
00032 int i;
00033
00034 char *work[] = {
00035 "applesauce",
00036 "tiger",
00037 "mountain",
00038 NULL
00039 };
00040
00041 printf("client %ld started\n", (long)getpid());
00042 ec_null( sqp = smi_open(SERVER_NAME, SMI_CLIENT, DATA_SIZE) )
00043 for (i = 0; work[i] != NULL; i++) {
00044 ec_false( smi_send_getaddr(sqp, NULL, (void **)&msg) )
00045 strcpy(msg->smi_data, work[i]);
00046 ec_false( smi_send_release(sqp) )
00047 ec_false( smi_receive_getaddr(sqp, (void **)&msg) )
00048 printf("client %ld: %s --> %s\n", (long)getpid(),
00049 work[i], msg->smi_data);
00050 ec_false( smi_receive_release(sqp) )
00051 }
00052 ec_false( smi_close(sqp) )
00053 printf("Client %ld done\n", (long)getpid());
00054 exit(EXIT_SUCCESS);
00055
00056 EC_CLEANUP_BGN
00057 exit(EXIT_FAILURE);
00058 EC_CLEANUP_END
00059 }