| 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 |