`generate_port', `try_bind_listen', `try_connect', `try_accept', `register_server'
----------------------------------------------------------------------------------

generate_port([USE_UNIX])
     :: port $B$N@8@.(B

try_bind_listen(PORT)
     :: port $B$KBP$7$F(B bind, listen

try_connect(HOST,PORT)
     :: port $B$KBP$7$F(B connect

try_accept(SOCKET,PORT)
     :: connect $BMW5a$r(B accept

register_server(CONTROL_SOCKET,CONTROL_PORT,SERVER_SOCKET,SERVER_PORT)
     :: connection $B$N@.N)$7$?(B control socket, server socket $B$NEPO?(B

RETURN
     `generate_port()' $B$N$_@0?t$^$?$OJ8;zNs(B. $B$=$NB>$O@0?t(B.

USE_UNIX
     0 $B$^$?$O(B 1

HOST
     $BJ8;zNs(B

PORT,CONTROL_PORT,SERVER_PORT
     $B@0?t$^$?$OJ8;zNs(B

SOCKET,CONTROL_SOCKET,SERVER_SOCKET
     $B@0?t(B

   * $B$3$l$i$N4X?t$O(B,
     $B1s3V%W%m%;%9$HDL?.$r@.N)$5$;$k$?$a$N%W%j%_%F%#%V$G$"$k(B.

   * `generate_port()' $B$ODL?.$N$?$a$N(B port $B$r@8@.$9$k(B. $BL50z?t$"$k$$$O(B
     $B0z?t$,(B 0 $B$N>l9g(B, Internet domain $B$N(B socket $B$N$?$a$N(B port $BHV9f(B, $B$=$l(B
     $B0J30$N>l9g$K$O(B, UNIX domain (host-internal protocol) $B$N$?$a$N(B,
     $B%U%!%$%kL>(B $B$r@8@.$9$k(B. port $BHV9f$O(B random $B$K@8@.$5$l$k$,(B, $B$=$N(B
     port $B$,;HMQCf$G$J$$(B $BJ]>Z$O$J$$(B.

   * `try_bind_listen()' $B$O(B, $BM?$($i$l$?(B port $B$KBP$7(B, $B$=$N(B protocol $B$K(B
     $BBP1~$7$?(B socket $B$r@8@.$7(B, bind, listen $B$9$k(B. $B@.8y$7$?>l9g(B, socket
     $B<1JL;R$rJV$9(B. $B<:GT$7$?>l9g(B, -1 $B$,JV$k(B.

   * `try_connect()' $B$O(B, $B%[%9%H(B HOST $B$N(B port PORT $B$KBP$7(B connect
     $B$r;n$_$k(B. $B@.8y$7$?>l9g(B, socket $B<1JL;R$rJV$9(B. $B<:GT$7$?>l9g(B -1
     $B$,JV$k(B.

   * `try_accept()' $B$O(B, SOCKET $B$KBP$9$k(B connect $BMW5a$r(B accept $B$7(B,
     $B?7$?$K@8@.$5$l$?(B socket $B$rJV$9(B. $B<:GT$7$?>l9g(B -1 $B$,JV$k(B.
     $B$$$:$l$N>l9g$K$b(B, SOCKET $B$O<+F0E*$K(B close $B$5$l$k(B.  $B0z?t(B PORT $B$O(B,
     SOCKET $B$N(B protocol $B$rH=JL$9$k$?$a$KM?$($k(B.

   * `register_server()' $B$O(B, control, server $B$=$l$>$l$N(B socket $B$r(B
     $B0lAH$K$7$F(B, server list $B$KEPO?$7(B, `ox_push_cmo()' $B$J$I$GMQ$$$k(B
     $B%W%m%;%9<1JL;R$rJV$9(B.

   * $B1s3V%W%m%;%9$N5/F0$O(B, `shell()' $B$^$?$O<jF0$G9T$&(B.

     [340] CPort=generate_port();
     39896
     [341] SPort=generate_port();
     37222
     [342] CSocket=try_bind_listen(CPort);
     3
     [343] SSocket=try_bind_listen(SPort);
     5
     
     /*
     $B$3$3$G(B, ox_launch $B$r5/F0(B :
     %  ox_launch "127.1" 0 39716 37043 ox_asir "shio:0"
     */
     
     [344] CSocket=try_accept(CSocket,CPort);
     6
     [345] SSocket=try_accept(SSocket,SPort);
     3
     [346] register_server(CSocket,CPort,SSocket,SPort);
     0

$B;2>H(B
     *Note `ox_launch ox_launch_nox ox_shutdown': ox_launch
     ox_launch_nox ox_shutdown, *Note `ox_launch_generic':
     ox_launch_generic, *Note `shell': shell, *Note `ox_push_cmo
     ox_push_local': ox_push_cmo ox_push_local

