version 1.1, 2000/09/07 21:34:06 |
version 1.3, 2000/09/07 22:21:11 |
|
|
/* $OpenXM$ */ |
/* $OpenXM: OpenXM/doc/oxlib/test1-tcp.c,v 1.2 2000/09/07 21:55:48 takayama Exp $ */ |
/* A sample code to explain how to use ox_asir by TCP/IP and |
/* A sample code to explain how to use ox_asir by TCP/IP and |
OpenXM control protocol. |
OpenXM control protocol. |
It computes the gcd of 12 and 8 by calling ox_asir server. |
It computes the gcd of 12 and 8 by calling ox_asir server. |
*/ |
*/ |
|
|
|
/* |
|
Asir code that does the same computation on ox_asir server. |
|
Try the following lines on asir. |
|
|
|
P = ox_launch(); |
|
ox_push_cmo(P,12); |
|
ox_push_cmo(P,8); |
|
ox_push_cmo(P,ntoint32(2)); |
|
ox_push_cmo(P,"igcd"); |
|
ox_push_cmd(P,269); |
|
ox_pop_string(P); |
|
|
|
Then, you get |
|
4 |
|
|
|
*/ |
|
|
#include <stdio.h> |
#include <stdio.h> |
#include <sys/types.h> |
#include <sys/types.h> |
#include <sys/socket.h> |
#include <sys/socket.h> |
Line 125 ox_pop_string(int dataPort,char *buf,int limit) { |
|
Line 143 ox_pop_string(int dataPort,char *buf,int limit) { |
|
exit(1); |
exit(1); |
} |
} |
length = ox_pop_int32(dataPort); |
length = ox_pop_int32(dataPort); |
if (length > limit) { |
if (length > limit-1) { |
fprintf(stderr,"Too long string to read.\n"); |
fprintf(stderr,"Too long string to read.\n"); |
exit(1); |
exit(1); |
} |
} |
read(dataPort,buf,length); |
read(dataPort,buf,length); |
|
buf[length]=0; |
} |
} |
|
|
#define SIZE 1024 |
#define SIZE 1024 |