<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 | 王鵬
    主站蜘蛛池模板: 91成人免费观看网站| 国产又黄又爽又刺激的免费网址 | a国产成人免费视频| 亚洲电影中文字幕| 好爽又高潮了毛片免费下载| 一级全免费视频播放| 中文字幕亚洲精品| 免费va人成视频网站全| 久久久免费精品re6| 亚洲Av永久无码精品黑人| 国产亚洲综合色就色| 在线观看视频免费国语| 国产亚洲精品免费视频播放| 亚洲制服丝袜在线播放| 久久久久亚洲AV无码专区网站| 亚洲香蕉免费有线视频| 精品久久久久久国产免费了| 亚洲伊人久久大香线蕉影院| 亚洲欧洲日产国码一级毛片| 免费大片黄在线观看yw| 一个人看的在线免费视频| 亚洲成人免费网站| 亚洲香蕉网久久综合影视| 成人片黄网站色大片免费| 在线看片免费人成视频久网下载| 亚洲人成电影网站色| 亚洲最大福利视频网站| 又黄又爽一线毛片免费观看| 亚洲三级高清免费| 国产免费网站看v片在线| 免费无码专区毛片高潮喷水| 2020天堂在线亚洲精品专区| 亚洲成人在线网站| 中文字幕亚洲日本岛国片| 国产网站在线免费观看| 国产免费久久精品99re丫y| 日韩精品免费在线视频| 成人a毛片免费视频观看| 亚洲成AV人片在WWW| 亚洲AV无码无限在线观看不卡| 亚洲A∨无码无在线观看|