Go to the first, previous, next, last section, table of contents.

### `generate_port`, `try_bind_listen`, `try_connect`, `try_accept`, `register_server`

`generate_port([use_unix])`
  :: port の生成
`try_bind_listen(port)`
  :: port に対して bind, listen
`try_connect(host,port)`
  :: port に対して connect
`try_accept(socket,port)`
  :: connect 要求を accept
`register_server(control_socket,control_port,server_socket,server_port)`
  :: connection の成立した control socket, server socket の登録

return
  `generate_port()` のみ整数または文字列. その他は整数.
use_unix
  0 または 1
host
  文字列
port control_port server_port
  整数または文字列
socket control_socket server_socket
  整数

- これらの関数は, 遠隔プロセスと通信を成立させるためのプリミティブである.
- `generate_port()` は通信のための port を生成する. 無引数あるいは 引数が 0 の場合, Internet domain の socket のための port 番号, それ 以外の場合には, UNIX domain (host-internal protocol) のための, ファイル名 を生成する. port 番号は random に生成されるが, その port が使用中でない 保証はない.
- `try_bind_listen()` は, 与えられた port に対し, その protocol に 対応した socket を生成し, bind, listen する. 成功した場合, socket 識別子を返す. 失敗した場合, -1 が返る.
- `try_connect()` は, ホスト host の port port に対し connect を試みる. 成功した場合, socket 識別子を返す. 失敗した場合 -1 が返る.
- `try_accept()` は, socket に対する connect 要求を accept し, 新たに生成された socket を返す. 失敗した場合 -1 が返る. いずれの場合にも, socket は自動的に close される. 引数 port は, socket の protocol を判別するために与える.
- `register_server()` は, control, server それぞれの socket を 一組にして, server list に登録し, `ox_push_cmo()` などで用いる プロセス識別子を返す.
- 遠隔プロセスの起動は, `shell()` または手動で行う.

    [340] CPort=generate_port();
    39896
    [341] SPort=generate_port();
    37222
    [342] CSocket=try_bind_listen(CPort);
    3
    [343] SSocket=try_bind_listen(SPort);
    5

    /*
    ここで, ox_launch を起動 :
    %  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

`参照`
  section `ox_launch`, `ox_launch_nox`, `ox_shutdown`, section `ox_launch_generic`, section `shell`, section `ox_push_cmo`, `ox_push_local`

Go to the first, previous, next, last section, table of contents.