I don't think there is anything to stop you from running two or more JMP17 at the same time, other than resource consumption concerns. Having two JMP of the same version, save you some headaches from unexpected but possible compatibility issues.
Here is an example based on the example from OSI > Socket > Listen.
This is the script on the JMP that listens:
skt = socket();
skt << bind( "localhost", "80" );
skt << ioctl( FIONBIO, 1 );
skt << listen();
while ( 1,
Wait( 1 );
rc = skt << accept();
If( Starts With( rc[2], "WOULDBLOCK" ),
Print( "no connect attempt yet" )
,
If( rc[2] == "ok",
remoteaddr = rc[3];
Write( "\!nConnection from ", remoteaddr );
conskt = rc[4];
rc = conskt << recv( 1000 );
show(rc);
msg = Blob To Char( rc[3], encoding= "utf-8" );
show(msg);
if (msg=="Stop Listening",
skt << close();
stop()
);
continue();
,
Show( rc );
skt << close();
stop();
)
);
);
This is the script on the JMP that talks:
skt = socket();
skt << connect( "localhost", "80" );
skt << send(Char to Blob("Hello world!"));
skt << close();
skt = socket();
skt << connect( "localhost", "80" );
skt << send(Char to Blob("Stop Listening"));
skt << close();
This is an example using Run Program:
Save Text File( "$TEMP/listener.jsl", "\[Show("Hello World!")]\" );
Open("$TEMP/listener.jsl");
rp = Run Program(
Executable("...path to your \Jmp.exe"),
Options({"-FILE \!"" || substr(Get Path Variable( "TEMP" ),2) || "listener.jsl\!""});
);
rp << Is Read EOF;
wait(0);