cQSERVER ;TPC/IP server ;cQSERVER; Q ; server SET io="|TCP|1" SET ^serverport=7001 OPEN io:(:^serverport:"MA"):200 IF ('$TEST) { WRITE !,"Cannot open server port" QUIT } ELSE { WRITE !,"Server port opened" } loop ; USE io READ x ; Read for accept USE 0 WRITE !,"Accepted connection ",$INCREMENT(vnr,1) JOB child:(:5:io:io) ;Concurrent server bit is on GOTO loop child ; READ REQ#100:1 S i1=+$P($ZUTIL(188),","),i2=+$P($P($ZUTIL(188),",",2),"."),i3=+$P($ZUTIL(188),".",2),i4=$INCREMENT(^client(i1,i2,i3,1)) ;time of the request S ^client(i1,i2,i3,i4,"req")=(+$P($ZUTIL(188),","))_"\"_(+$P($P($ZUTIL(188),",",2),"."))_"\"_(+$P($ZUTIL(188),".",2))_"\"_$ZDATETIME($ZU(188),8,1,3)_"\"_$JOB_"\"_$G(REQ) ;do blabla S RES="0,0,ResponseAuthentication,CSV,6152132103456001,61521321,12345,,DATA,,,," WRITE RES,! ; Send job id on TCP device to be read by client S ^client(i1,i2,i3,i4,"res")=(+$P($ZUTIL(188),","))_"\"_(+$P($P($ZUTIL(188),",",2),"."))_"\"_(+$P($ZUTIL(188),".",2))_"\"_$ZDATETIME($ZU(188),8,1,3)_"\"_$JOB_"\"_$G(RES) QUIT client ; SET io="|TCP|2" SET host="127.0.0.1" OPEN io:(host:^serverport:"M"):200 ;Connect to server IF ('$TEST) { WRITE !,"cannot open connection" Quit } ELSE { WRITE !,"Client connection opened" ;Use io WRITE "I have a request!" USE io WRITE "PICK_CUSTOMER_VER,300,RequestAuthentication,CSV,6152132103456001,61521321,12345,20050714101114,DATA,,,,",! ;USE io READ x#3:200 ;Reads from subjob USE io READ x:2 ;Reads from subjob } IF ($LENGTH(x)) { USE 0 W !,"message from child: ",!,"<",$G(x),">" CLOSE io QUIT } ELSE { USE 0 WRITE !,"No message from child" CLOSE io QUIT } ; YZ Q ; ZZ ; 17.01.2012 - 15:58 * Cache-r6.4.9