このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

AppleScript で TCP/IP

発言者:マツダ
( Date Tuesday, October 31, 2000 11:53:10 )


はじめまして。マツダと申します。

AppleScriptの初心者です。AppleScriptでTCP/IPを実装したくてTCP/IP
Scripting AdditionやNetEventsの情報を探しまくったのですが、こと
ごとくリンク切れなどで、OSAXそのものが入手できません。
この会議室のログを見ても、このあたりの発言はわりと古いようですが、
今はどうなっているのでしょうか。

以上、よろしくお願いいたします。

田中求之 さんからのコメント
( Tuesday, October 31, 2000 12:15:37 )

TCp Scripting Addition については、私も動向はつかめていません。
(MacOS 8.6 で動いていますけど)

NetEvents は、ページが変更になっています(オープンソースに変更になった
ため)。で、オープンソースのページをチェックしてみましたが、リンクが
切れちゃってますね。

とりあえず、現在の NetEvents のホームページは以下のところです。

→  BIAP NetEvents

マツダ さんからのコメント
( Tuesday, October 31, 2000 12:30:42 )

田中さん、はじめまして。

さっそくのお返事、どうもありがとうございます。

ご連絡いただいたNetEventsのページはすでに見つけていたのですが、
私はCodeWarrearを持っていませんので、バイナリーが作成できません。

TCP Scripting Additionの方は開発元のmangotreeにメールで問い合わせ
ています。

もしこれらのいずれも今は入手できないとなると、あとはCodeWarrearを
買うか、RealBasicでも使うしかないのでしょうか。

田中求之 さんからのコメント
( Tuesday, October 31, 2000 12:38:15 )

>私はCodeWarrearを持っていませんので、バイナリーが作成できません。

自宅に帰られないと確認できないんですが、CVS で落としたプロジェクトの中に
バイナリも入っていたと思います。今夜にでも確認してみます。

>もしこれらのいずれも今は入手できないとなると、あとはCodeWarrearを
>買うか、RealBasicでも使うしかないのでしょうか。

TCP/IP で、どんなことをなさろうとしてますか? 確かに REALbasic を
使うと、けっこう簡単ですけど。

マツダ さんからのコメント
( Tuesday, October 31, 2000 13:51:22 )

コメントありがとうございます。

>CVS で落としたプロジェクトの中に
>バイナリも入っていたと思います。今夜にでも確認してみます。

さっそく落としてみたところ、おっしゃる通り、バイナリも入って
いました。

>TCP/IP で、どんなことをなさろうとしてますか? 確かに REALbasic を
>使うと、けっこう簡単ですけど。

ftpでのアップロードとメール送信です。メールはsendmailというフリー
のOSAXを見つけて、これでうまくいっています。
ftpは最初はFetchかAnarchieをAppleScriptで実行していたのですが、これ
を何とか内部で実装できないものかと探っていました。

AppleScriptでは設定メニューのデザインに限界があるので(Dialog
Directorでも使えばそこそこはいけるかも知れませんが)、いずれは
RealBasicに移らないとダメかなと思っているのですが、とりあえずは
まず全体の動きの基本的なところを早く実現したいと思っています。

どうもありがとうございましたm(_._)m。

田中求之 さんからのコメント
( Tuesday, October 31, 2000 14:30:33 )

FTP は意外と面倒なのですが、がんばってください。TCP/IP での動作を
押さえておくと、ネットワークが愉しめるようになります。

なお、FTP でしたら、8.5 以降に付属の、URL Access Scripting を
使うこともできますよ。

いその@とし研 さんからのコメント
( Tuesday, October 31, 2000 16:11:45 )

TCP Scripting Addition は、少し前に落とした記憶があったので、調べました。
下記のリンクからたどるとデモはダウンロードできるようです。

# 下記のサイト結構重宝してます。田中さんのも載ってるし...

→  osaxen! @ macscripter.net

マツダ さんからのコメント
( Tuesday, October 31, 2000 21:46:30 )

>なお、FTP でしたら、8.5 以降に付属の、URL Access Scripting を
>使うこともできますよ。

さっそく試してみたところ、やりたいことがたったの1行で実現できて
しまいました。ターゲット環境ではまだまだMacOS8.1などがたくさん
あるので、NetEventsでの実装は必要なのですが、とりあえずはこれで
いけそうです。
どうもありがとうございました。

それからまとめレスで申し訳ありませんが、
いその@とし研 さん、はじめまして。

あのサイトからダウンロードできるデモ版はすでにデモ期限が切れて
しまっています。購入のリンク先はオンラインショップになっているの
ですが、ここでも所望のプロダクトは見つけられませんでした。
ちなみにsendmailのOSAXはこのサイトで見つけました。

マツダ さんからのコメント
( Wednesday, November 01, 2000 23:38:05 )

先日、教えていただいた URL Access Scripting に関して、お聞きしたい
ことがあります。

私のメインのマシンは G3 MT266/MacOS8.6 で、この環境で、

 upload "file name" to "URL"

とやると期待通りの動きになるのですが、古い 7600/200 / MacOS8.6 で
まったく同じスクリプトを実行すると『URL Access Scripting にて誤り
が起きました:データを指定された型に変換できませんでした。』という
エラーになります。

そこで、

 upload "file name" as alias to "URL"

とやると、今度は『URL Access Scripting にて誤りが起きました:誤り
が起きました:』となってしまいます。
この時にftpサーバー側のログを見ると、ログインは正常になされている
ようです。

AppleScript関連の機能拡張や、URL Access Scriptingのヴァージョンは
両方ともまったく同じでした。
この後、どのあたりを調べればよろしいでしょうか。

メッシュ さんからのコメント
( Friday, November 03, 2000 01:19:57 )

すぐに思いついたのは,ファイルの指定の方法についての問題です。
どちらの場合も,スクリプトを実行しているアプリケーションと同じフォルダに
目的のファイルが入っていないと実行できないのではないかと思います。
"file name" as aliasは相対パスの指定だからです。
あと,スクリプト編集プログラム上でスクリプトを実行する場合,
スクリプトアプリケーションではなくスクリプト編集プログラムが
「スクリプトを実行しているアプリケーション」になる点などは見落としがちです。
通常,これらの問題を避けるためにファイルはフルパスで指定します。
upload file "Disk Name:Folder Name:File Name" to "URL"
ただし,こんどはHDなどの名称に依存してしまうため,違うMacでは使いにくくなるでしょう。
初期設定フォルダや書類フォルダなどを利用するとHDなどの名称に依存しなくなりますよね。
とりあえず,"file name" as aliasの部分を(choose file)にして試してみてはいかがでしょう。
もちろんURL Access Scriptingそのもののエラーの可能性もありますが,
とりあえずは問題を切り分けて解決した方がいいと思いますので。

マツダ さんからのコメント
( Friday, November 03, 2000 17:09:26 )

メッシュさん、はじめまして。コメントありがとうございます。

記述したコードでは簡略化してあのような書き方にしましたが、実際
にはディスク名やフォルダ名も含めたフルパスで記述しています。
最初、choose fileでエラーになったので、テストのために存在する
ファイル名をフルパスで記述しても、まったく同じ症状でした。