Si tengo dos versiones diferentes de procesos JMP abiertas al mismo tiempo en Windows 10.
Yo:\00\jmp17\jmp.exe
Yo:\00\jmp16\jmp.exe
Primero se abre JMP 17.
¿Cómo escribir una implementación JSL en JMP 17 para ejecutar otro JSL en una computadora en JMP 16 que ya está abierta?
Nota Para acelerar la respuesta, es necesario ejecutar otro JSL en JMP 16 que ya esté abierto
Esta captura de pantalla es de JMP 16 ya abierto.
¡Gracias!

Hay un par de opciones que se me ocurren:
1. Utilice Socket (compruébelo en Scripting Index). Entonces, su JMP17 se comunicará con un puerto y su JMP16 escuchará un puerto y reaccionará en consecuencia.
2. Utilice "Ejecutar programa" (compruébelo en el Índice de secuencias de comandos). Por ello, el JMP16 desconoce la existencia del JMP17.
Curioso por qué JMP17 y JMP16. ¿Por qué no JMP17 y JMP17? Parece que hay algún inconveniente que desea evitar. ¿Qué es eso?
Sí, a menudo tengo varios procesos JMP abiertos al mismo tiempo.
Utilice JMP16 y 17 simultáneamente. Facilita el clic.
¿Es más fácil escuchar si ambos procesos son JMP 17?
¿Cómo implementarlo con JSL?
Ahora estoy usando AutoHotkey para ayudar en la implementación.
¡Gracias expertos!
No creo que haya nada que le impida ejecutar dos o más JMP17 al mismo tiempo, aparte de las preocupaciones sobre el consumo de recursos. Tener dos JMP de la misma versión le ahorrará algunos dolores de cabeza por problemas de compatibilidad inesperados pero posibles.
A continuación se muestra un ejemplo basado en el ejemplo de OSI > Socket > Listen.
Este es el script del JMP que escucha:
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();
)
);
);
Este es el guión del JMP que habla:
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();
Este es un ejemplo usando Ejecutar programa:
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);