[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
2001/01/23 00:45 from neko
Title: [teenbbs:1030] Re:1026)timer, perl

No.   : 1030
Sender: neko
URL   : 
Title : Re:1026)timer, perl

> よく分っていないのですが, teen をキャラクタ・デバイスから呼び出せる
> ようにできると, perl, sh 等のスクリプトとかバッチ・ファイルとかで
> tcp/ip アプリもどきが作れるようになるのでしょうか?
  ioctl と リ−ド,ライト で扱えるようになれば、perl , ruby などで
使えるでしょう。 sh は駄目でかな( ファイルハンドル が扱えないと
いけないので )。呼び出し方はスクリプト( とそれを compile したもの )
によって変わりますが。
  今思っている仕様では、送信バッファ 4k, 受信バッファ 1k で  4 ハンドル
ぐらい用意するとして、

16bit版 perl :
#キャラクタデバイス 名、 $TEENTCP
  open( TSOCK, '$TEENTCP') || die "can't open";

# open 時は ハンドルに -1 を入れる
# ioctl は word : command, word : handle, word : return value, args ...
  $ioarg = pack( "ssssa64", $CMD_TCP_OPEN, -1, 0, 21, "xyz.my.domain");
# DOS の IOCTL 2 番、キャラクタデバイスでの IOCTL READ
  ioctl( TSOCK, 2, $ioarg);
  @ret = unpack( "ssssA64" , $ioarg);
  print "ioctl devret = $x[2]\n";
  $handle = $x[2];

# read, write で使うハンドルを指定する
  $ioarg = pack( "sss", $CMD_TCP_SELECT, $handle, 0 );
  ioctl( TSOCK, 2, $ioarg);
  @ret = unpack( "sss" , $ioarg);
  print "ioctl devret = $x[2]\n";
  .
  .
  read( TSOCK, $str, 80);

みたいに使えるかなあと。

[レスを書く]