<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類型可以是sockssocks5socks4generic。其中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/CoreREBOL/ViewREBOL/View/ProREBOL/CommandREBOL/Command/View這五個標準的REBOL解釋器來說,如果沒有特別設置安全,在解釋器預定的情況下,如果script試圖修改磁盤內容或試圖執行磁盤內的文件,就會出現上述的對話框(dialog),來讓用戶自行決定。藉此保護用戶的文件系統,免于受到破壞。

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

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

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

    【注】secure后面中括號內的文字,就是一種很簡單的方言,由security函數制訂,專門用來描述對于網絡和磁盤存取動作的限制。方言中出現的字,即使某些和REBOL語言的函數一樣(例如此處的readaskwrite),但意義上完全是兩回事。這就是方言!用來表達特殊領域,且不受到原本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 閱讀(795) 評論(1)  編輯  收藏 所屬分類: 蔡學鏞

    評論

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

    dsklasmilksanujauksa
    2006-08-09 14:41 | 王鵬
    主站蜘蛛池模板: 无码天堂亚洲国产AV| 久久精品亚洲视频| 久久精品国产亚洲AV未满十八| 久久午夜免费视频| 亚洲美女中文字幕| 小草在线看片免费人成视久网| 亚洲国产精品一区第二页| 99re6在线视频精品免费| 国产亚洲成av片在线观看| 久久国产精品免费| 久久精品国产亚洲AV果冻传媒| 免费h视频在线观看| 亚洲国产精品久久久久久| 18pao国产成视频永久免费| 亚洲一区二区三区在线观看蜜桃| 99久久99这里只有免费费精品| 亚洲日本人成中文字幕| 免费观看的a级毛片的网站| 男女超爽视频免费播放| 久久久久无码专区亚洲av| 日本视频在线观看永久免费| 亚洲国产美女福利直播秀一区二区| AV免费网址在线观看| 色噜噜的亚洲男人的天堂| 久久久久亚洲av毛片大| 91麻豆国产免费观看| 亚洲综合偷自成人网第页色| 午夜成人免费视频| 国产精品免费一区二区三区| 亚洲gv白嫩小受在线观看| 综合在线免费视频| 一级做a爰片久久毛片免费看| 久久久久久亚洲精品| 成人免费午夜视频| 免费观看一区二区三区| 亚洲成在人线中文字幕| 亚洲精品高清在线| 日韩精品成人无码专区免费 | WWW国产亚洲精品久久麻豆| 国产AⅤ无码专区亚洲AV| 国产情侣激情在线视频免费看|