<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    rosial

    lost memory
    數據加載中……

    《爪哇夜未眠》- REBOL篇 - REBOL的設置

    ????

    ????? 一般來說,REBOL不需要什么特別的設置(configuration),就可以執行。但是在某些環境下(特別是Unix),你可能需要設置REBOL_HOME環境變量。另外,在某些窗口環境中,可以將擴展名為“.r”的文件,設置為REBOL解釋器的關聯文件,以方便執行。

    真正重要的是網絡的設置與安全的設置,分成兩小節來說明。

    網絡設置

    ????? 某些REBOL函數需要知道網絡相關的設置,否則無法運作。例如send函數可以用來發送電子郵件。如果使用send,就必須先設置好外寄電子郵件服務器(SMTP Server)。如果沒設置電子郵件服務器,就試圖送出email,會得到下面的結果:

    >> send jerrytsai@shinewave.com.tw "Hello"

    ** User Error: No network server for smtp is specified

    ** Near: smtp-port: open [scheme: 'smtp]

    either only

    ????? 我們可以先設置網絡,再執行send,就不會有問題了:

    >> set-net [jerrytsai@shinewave.com.tw
    ????? smtp.shinewave.com.tw]

    >> send jerrytsai@shinewave.com.tw "Hello"

    connecting to: smtp.shinewave.com.tw

    ?????set-net是一個函數,后面需要一個區塊(block)參數(所謂的區塊,指的是:用中括號[ ]包圍的一群值),區塊內放置“至少”兩個值,第一個值是寄件者的電子郵件信箱,第二個值是外寄電子郵件服務器(SMTP Server)。如果你不知道你的SMTP Server為何,可以從你的收信軟件(例如:Microsoft Outlook)中找到這樣的信息。

    ????? 如果每次使用send前都要先利用set-net來設置網絡,也實在是太麻煩了。你可以將這道set-net描述寫在user.r中。前一節提到,REBOL解釋器啟動時,會自動讀進user.r文件內的REBOL script,并執行之。

    Set-net的參數區塊內,最少要指定兩個值,最多可以有六個值,這六個值的意義依序分別為:

    1.???????? 電子郵件帳號

    2.???????? 電子郵件發送服務器

    3.???????? 電子郵件接收服務器

    4.???????? proxy服務器

    5.???????? proxy port(默認值是1080

    6.???????? proxy type(默認值是“socks”)

    ????? 任何值如果不存在,可以利用none來表示。例如:

    set-net [luke@rebol.com mail none our-proxy 1080 socks]

    ????? 這六個值中,第四到第六的值是和proxy有關。如果你是直接利用調制解調器(modem)或以太網(ethernet)聯機到互聯網(Internet),你不需要設置這三個值。如果你不確定這三個值應該么設置,你可以從你的網頁瀏覽器(Web browser)中找到這些設置。以微軟的Internet Explorer瀏覽器來說,在菜單中選擇【工具】àInternet選項】à【連接】à【局域網設置】,即可找到Proxy的相關設置值。

    ????? 對于REBOL來說,proxy類型可以是sockssocks5socks4、generic。其中genericgeneric CERN proxy的意思。

    ????? 其實,set-net這個函數會將這六個設置值依序放到下面的六個系統變量中:

    SYSTEM/USER/EMAIL

    SYSTEM/SCHEMES/DEFAULT/HOST

    SYSTEM/SCHEMES/POP/HOST

    SYSTEM/SCHEMES/DEFAULT/PROXY/HOST

    SYSTEM/SCHEMES/DEFAULT/PROXY/PORT-ID

    SYSTEM/SCHEMES/DEFAULT/PROXY/TYPE

    ????? 因此,我們也可以不使用set-net函數,而直接設置變量,例如:

    >> SYSTEM/USER/EMAIL: jerrytsai@shinewave.com.tw

    >> SYSTEM/SCHEMES/DEFAULT/HOST: smtp.shinewave.com.tw

    ???? 請注意,利用這種方法來設置變量時,冒號“:”必須緊接在變量后面,而冒號后面必須要有空格。

    ???? 你可以利用print來查看這些變量的值,例如:

    >> print SYSTEM/SCHEMES/DEFAULT/HOST

    msa.hinet.net

    安全設置

    ????????? REBOL script執行時必須通過REBOL解釋器,而REBOL解釋器可以進行安全把關,如果解釋器發現script試圖進行一些“有安全疑慮”的動作時,就會顯示出類似圖1的對話框(dialog),警告用戶。用戶可以選擇因應的方式:

    l???????? Yes:允許script進行此次動作,繼續執行

    l???????? Allow all:允許script進行所有此類動作(以后不用再問了),繼續執行

    l???????? No:不允許script進行此動作,繼續執行。這會產生Security Violation(違反安全)的Access Error存取錯誤)。

    l???????? Quit:將此script終止執行

    1? REBOL解釋器詢問我們,如何處置有安全疑慮的動作

    ????? 何謂“有安全疑慮”的動作?對于REBOL/Core、REBOL/ViewREBOL/View/ProREBOL/Command、REBOL/Command/View這五個標準的REBOL解釋器來說,如果沒有特別設置安全,在解釋器預定的情況下,如果script試圖修改磁盤內容或試圖執行磁盤內的文件,就會出現上述的對話框(dialog),來讓用戶自行決定。藉此保護用戶的文件系統,免于受到破壞。

    ????? 但是上述的安全設置,只有針對這五個標準的REBOL解釋器。對于REBOL/Base、REBOL/Pro、與REBOL/Face來說,完全沒有安全的限制。因為這三個精簡核心版(kernel)的解釋器是給軟件開發人員用的,而不是給一般的軟件用戶用的。軟件開發人員只會使用REBOL/Base、REBOL/Pro、與REBOL/Face來測試自己開發出來的REBOL script,而不會用它們來執行其它的REBOL script。

    ????? 如果精簡核心版的解釋器想要和標準版的解釋器一樣,藉此保護用戶的文件系統,免于受到破壞,可以利用下面的敘述:

    secure [file [allow read? ask write? ask execute]]【注】

    【注】secure后面中括號內的文字,就是一種很簡單的方言,由security函數制訂,專門用來描述對于網絡和磁盤存取動作的限制。方言中出現的字,即使某些和REBOL語言的函數一樣(例如此處的read、askwrite),但意義上完全是兩回事。這就是方言!用來表達特殊領域,且不受到原本REBOL語法的規范。

    ????? 這里的意思是:對于文件的安全控管方式,允許文件被讀(allow read)、寫入的時候需要詢問用戶(ask write)、執行文件的時候需要詢問用戶(ask execute)。

    ????? 我們可以利用security函數來針對網絡、整個文件系統、特定文件或目錄,進行安全上的限制。為了方便起見,我們通常將安全設置的敘述,放在rebol.r中。

    Security函數后面可以跟著一個字或一個區塊。如果是一個字,則表示網絡和文件系統都采用此種安全處理方式。如果是一個區塊,可以做比較細微的更動。例如:

    Security ask

    ????? 上面表示,不管對于網絡或磁盤系統的存取,都必須先詢問用戶,取得同意。

    Security [ net quit file ask %./ allow ]

    ????? 上面表示,對于網絡的存取一概拒絕,且自動結束程序的執行。對于文件系統,必須先詢問用戶,取得同意。對于目前目錄下(“%.”表示目前的目錄)的所有文件,一律允許存取。

    關于security函數的詳細用法,你可以利用help函數(或?)來取得說明文件:

    >> ? security

    ????? 如果你想執行某個可信任的REBOL腳本,想破除安全限制,你可以利用REBOL解釋器的命令行選項“-s”【注】,如下所示。除了“-s”,還有一個“+s”的選項,其作用剛好和“-s”相反。

    REBOL -s TrustWorthy.r

    【注】這年頭,凡事還是小心一點好,建議你不要輕易使用“-s”。

    發表日期: Feb. 29, 2004

    posted on 2006-07-10 13:26 rosial 閱讀(796) 評論(1)  編輯  收藏 所屬分類: 蔡學鏞

    評論

    # re: 《爪哇夜未眠》- REBOL篇 - REBOL的設置  回復  更多評論   

    dsklasmilksanujauksa
    2006-08-09 14:41 | 王鵬
    主站蜘蛛池模板: 亚洲一区爱区精品无码| 青草青草视频2免费观看| 久久久久亚洲?V成人无码| 最新猫咪www免费人成| 亚洲欧洲免费视频| 国产午夜无码片免费| 美女视频黄频a免费观看| 久久亚洲精品专区蓝色区| 亚洲国产成人久久精品动漫| 国产乱子伦精品免费女| 成年美女黄网站色大免费视频 | 日韩电影免费在线| h片在线免费观看| 99精品视频免费在线观看| 两个人看的www免费视频| 免费毛片毛片网址| 亚洲欧美在线x视频| 亚洲乱亚洲乱妇24p| 亚洲一区精彩视频| 亚洲人色大成年网站在线观看| 水蜜桃亚洲一二三四在线| 亚洲日韩欧洲无码av夜夜摸 | 一级毛片不卡免费看老司机| 国产成人综合久久精品亚洲| 亚洲资源最新版在线观看| 亚洲剧场午夜在线观看| 亚洲人成激情在线播放| 亚洲黄色在线观看网站| 久久亚洲AV成人无码软件| 久久久婷婷五月亚洲97号色| 久久久久亚洲AV片无码下载蜜桃| 亚洲AV无码AV男人的天堂| 亚洲AV本道一区二区三区四区| 亚洲日本中文字幕| 亚洲成年人电影网站| 亚洲一区二区三区免费在线观看| 亚洲一区免费视频| 亚洲Av永久无码精品一区二区| 美女视频黄视大全视频免费的| 午夜在线免费视频 | 成人免费在线看片|