pcs final project

72
PCS Final Project B95902012 柯柯柯 B95902051 柯柯柯 B95902058 柯柯柯 B95902088 柯柯柯

Upload: clark-bartlett

Post on 30-Dec-2015

57 views

Category:

Documents


0 download

DESCRIPTION

PCS Final Project. B95902012 柯杰夫 B95902051 張嫚家 B95902058 郭明鑫 B95902088 梁逸安. OUR LOGO. About Our Project -Project 目的. Project 目的. 在這個資訊爆炸的年代,網際網路資訊對於一般民眾的日常生活,早已是不可分割的一部分,無論是學生、教授、上班族抑或是家庭主婦,都曾有不想錯過任何資訊的一刻。. Project 目的. - PowerPoint PPT Presentation

TRANSCRIPT

PCS Final Project

B95902012 柯杰夫B95902051 張嫚家B95902058 郭明鑫B95902088 梁逸安

OUR LOGO

About Our Project

-Project 目的

Project 目的 在這個資訊爆炸的年代,網際網路資訊對

於一般民眾的日常生活,早已是不可分割的一部分,無論是學生、教授、上班族抑或是家庭主婦,都曾有不想錯過任何資訊的一刻。

Project 目的 尤其是對於對於大學生來說,上 BBS 已

經成為生活重心的一部分,和同學好友間的聯繫,全依帳於學校的 BBS 站台,一天不上 BBS 可能就失去和同學間談話的主題,或是一天不上 B 就渾身不對勁。

Project 目的

Project 目的 但有時候出門在外,身不由己,手邊沒有

電腦或是無線網路,想要取得資訊亦不可得。基於這些理由,在我們的 project 中我們將結合 iSMS 以及 socket programming ,實作在 BBS 上運作各種BBS 功能,以及在網際網路上擷取各種資訊的功能,

Project 目的 在以下的內容之中我們將一一介紹我們實

作的功能,並且詳細解釋要如何使用這些功能。

功能介紹-BBS功能

功能介紹

1.寄信功能2.po文功能3.群組寄信功能4.新增好友功能5.刪除好友功能

功能介紹

1.寄信功能2.po文功能3.群組寄信功能4.新增好友功能5.刪除好友功能

寄信 方法:

在第一個參數打上” m” ,第二個參數和第三個參數打上自己的 BBS 帳號密碼,第三個參數為收件者,第四個和第五個參數分別為信件標題和信件內文。

寄信 EX :

舉例來說,假如1. 某人的批兔帳號為 freetemp0 ,2. 密碼為 kerker ,3. 想要寄信給 kuokuo321 ,4. 信件標題為 hello ,5. 信件內文為 HelloWorld

寄信 EX :

於是他在簡訊裡打的就會是:ptt m freetemp0 kerker- kuokuo321 hello HelloWorld

這樣就可以完成我們的要求。

功能介紹

1.寄信功能2.po文功能3.群組寄信功能4.新增好友功能5.刪除好友功能

Po文 方法:

在第一個參數打上” post” ,第二個參數和第三個參數打上自己的 BBS 帳號密碼,第三個參數為想要 po 文的看板名稱,第四個和第五個參數分別為文章標題和文章內文。

Po文 EX :

舉例來說,假如1. 某人的批兔帳號為 freetemp0 ,2. 密碼為 kerker ,3. 想要在 kuokuo321 這個看板上 po 文,4. 文章標題為 hello ,5. 文章內文為 GoodMorning ,

Po文 EX :

於是他在簡訊裡打的就會是:ptt post freetemp0 kerker- kuokuo321 hello GoodMorning

這樣就可以完成我們的要求。

功能介紹

1.寄信功能2.po文功能3.群組寄信功能4.新增好友功能5.刪除好友功能

群組寄信 方法:

在第一個參數打上” mgroup” ,第二個參數之後,直到使用者打入一個參數叫” idend” (表示收信人名單結束)之前,都是群組收信人的 id ,收信人名單不限數目,可以輸入很多收信人。而在idend 之後的第一個參數為信件標題,而標題之後的所有參數是信件內文,每個參數代表內文的一行,不限行數。

群組寄信 EX :

舉例來說,假如1. 某人的批兔帳號為 freetemp0 ,2. 密碼為 kerker ,3. 想要群組寄信給 kuokuo321 hotlin1224 ec2522 rbx ,

群組寄信 EX :

舉例來說,假如4. 文章標題為”大家好”,5. 文章內文第一行為”注意”,6. 第二行為”明天中午”,7. 第三行為” 202 實驗室集合”,8. 第四行為”以上”

群組寄信 EX :

於是他在簡訊裡打的就會是:ptt mgroup freetemp0 kerker- kuokuo321 hotlin1224 ec2522 rbx- idend 大家好 注意 明天中午 -

202 實驗室集合 以上這樣就可以完成我們的要求。

功能介紹

1.寄信功能2.po文功能3.群組寄信功能4.新增好友功能5.刪除好友功能

新增好友 方法:

在第一個參數打上” add” ,第二個參數和第三個參數打上自己的 BBS 帳號密碼,第三個參數之後到最後一個參數,都是想要加入好友的 id ,不限數目。

新增好友 EX :

舉例來說,假如1. 某人的批兔帳號為 freetemp0 ,2. 密碼為 kerker ,3. 想要將 kuokuo321 , hotlin1224 ,ec2522 , rbx 等人加入好友

新增好友 EX :

於是他在簡訊裡打的就會是:ptt add freetemp0 kerker kuokuo321- hotlin1224 ec2522 rbx

這樣就可以完成我們的要求。

功能介紹

1.寄信功能2.po文功能3.群組寄信功能4.新增好友功能5.刪除好友功能

刪除好友 方法:

在第一個參數打上” del” ,第二個參數和第三個參數打上自己的 BBS 帳號密碼,第三個參數之後到最後一個參數,都是想要從好友名單刪除的 id ,並且不限刪除的 id 數目。

刪除好友 EX :

舉例來說,假如1. 某人的批兔帳號為 freetemp0 ,2. 密碼為 kerker ,3. 想要將 kuokuo321 , hotlin1224 ,ec2522 , rbx 等人從好友名單刪除

新增好友 EX :

於是他在簡訊裡打的就會是:ptt del freetemp0 kerker -kuokuo321 hotlin1224 ec2522 rbx

這樣就可以完成我們的要求。

功能介紹-Web功能

功能介紹

1.字典查詢功能2.氣象查詢功能3.NBA運彩賠率查詢功能4.NBA今日比數查詢功能

功能介紹

1.字典查詢功能2.氣象查詢功能3.NBA運彩賠率查詢功能4.NBA今日比數查詢功能

字典查詢 方法:

當我們想要查一個英文單字的解釋時,我們在第一個參數打上 dic ,第二個參數打上想要查詢的單字,系統便會回傳英文單字的解釋給他。

字典查詢 EX :

舉例來說,假如某人想要查詢 apple 這個英文單字的中文解釋

字典查詢 EX :

於是他在簡訊裡打的就會是:dict apple

這樣就可以順利收到 apple 這個單字的中文解釋。

字典查詢 EX :

功能介紹

1.字典查詢功能2.氣象查詢功能3.NBA運彩賠率查詢功能4.NBA今日比數查詢功能

天氣查詢 方法:

當我們想要查詢今天各地的天氣時,我們在訊息中打上 weather 這個參數。

天氣查詢 EX :

舉例來說,假如某人想要查詢今天的天氣於是他在簡訊裡打的就會是:weather

這樣他就可以順利收到今天各地的天氣氣溫,以及降雨機率預測。

天氣查詢 EX :

功能介紹

1.字典查詢功能2.氣象查詢功能3.NBA運彩賠率查詢功能4.NBA今日比數查詢功能

NBA運彩賠率查詢 方法:

當我們想要查詢今天 NBA 運彩的賠率時,我們在訊息中打上 lottery 這個參數,第二個參數如果打上 0 ,可以查詢本日NBA 的運彩賠率,如果第二個參數打上1 時,可以查詢明天 NBA 的運彩賠率,以便今日下注。

NBA運彩賠率查詢 EX :

舉例來說,假如某人想要查詢今天的運彩的賠率 ,於是他在簡訊裡打的就會是:

lottery 0

這樣他就可以順利收到今天運彩的各個賠率。

功能介紹

1.字典查詢功能2.氣象查詢功能3.NBA運彩賠率查詢功能4.NBA今日比數查詢功能

NBA今日比數查詢 方法:

當我們想要查詢當天 NBA 各個賽事的比數時,我們在訊息中打上 score 這個參數,第二個參數打上今天的日期。

NBA今日比數查詢 EX :

舉例來說,假如某人想要查詢今天 ( 一月八號 )NBA 賽事的比數 ,於是他在簡訊裡打的就會是: score 1/8

這樣他就可以順利收到今天每場 NBA 賽事的比數。

實作方法-BBS實作

BBS實作方法 1. 首先我們利用 wiershark 這個軟體,抓

出我們在 BBS 上打入的各個按鍵的封包。

BBS實作方法 2. 實際在瀏覽器上登入 BBS ,並記下過程中按下哪些按鍵。

BBS實作方法 3. 利用 socket programming寫入剛剛按

過的各個按鍵的封包。

BBS實作方法 4. 完成程式後,鍵入各個參數並執行,

使程式自動完成我們想要在 BBS 上做的功能

BBS實作方法 4. 完成程式後,鍵入各個參數並執行,

使程式自動完成我們想要在 BBS 上做的功能

BBS實作方法 5. 這樣一來就可以使程式做我們平常在

BBS 上做的事情了。

實作方法-Web實作

Web實作方法 Way 1:

直接使用和實作 BBS相同的方法抓封包,並且使用 socket programming by http(port 80) ,然後用 read 去 get 回傳的封包 ( 預估會含有 html 的原始檔 ) 在利用c語言中的字串處理,留下我們所需要的資訊。

Web實作方法 Way 1:

Web實作方法 實行上的困難 :

查詢網頁的雜訊太多 ( 可能同時用框架包含多個網頁 ) ,如此收到的封包判讀不易導致寫入 socket 裡的 data 使得網頁 sever判讀錯誤,無法回傳我們所需要的資訊。

此外,處理 html原始檔也不是件輕鬆的事所以我們放棄直接使用 C 的 socket programming 直接實作的方法。

Web實作方法 實行上的困難 :

Web實作方法 Way 2:

利用 python 這個 lib強大的程式語言,使用 uropen( 網頁網址 ) 就可以得到那個網頁的 html ,再從 html 中看出我們所需要的資訊會被包含在 <div class=pexplain>後,再把這些所需要的資訊 append 在結果的字串之後。

Web實作方法 Way 2:

Web實作方法 實行上的困難 :

首先,在工作站執行的時候就發現編碼的問題,從網頁抓下來得是 UTF-8 的編碼,在我們正常的狀況下,顯示皆為亂碼,但輸出到 txt檔再開啟發現就沒事,所以一開始我們想辦法把結果寫到 txt檔之中,然後在 printf 出來,但此方法 is a wrong way!

Web實作方法 實行上的困難 :

Web實作方法 實行上的困難 1:

因為是編碼本身的問題,開 txt檔會沒事是因為文字編輯器自動幫我們換成適當的編碼,而 printf 出來到顯示器上卻不會自動幫我們做這件事,所以這個方法是錯誤的。

Web實作方法 解決之道 :

因此,我們又像強大的 python lib 求救,發現了可以用 encode把他先變成unicode 在 decode 成 BIG-5 ,這樣顯示出來的就是可讀的文字了。

Web實作方法 實行上的困難 2:

再者, python 為直譯式語言,所以執行並沒有供 iSMS 的使用的執行檔可用,為此,我們想辦法把 python包在 c語言裡面 ( 利用crosscompile ,得到執行檔 ) 而為了要辦到讀簡訊及可當 input 給 program ,所以我們必須使用argv ,再好不容易統整好了 c 的 argv 到 python的之後,放到 iSMS 上卻發生了語法錯誤 !

Web實作方法 解決之道 :

在萬般無奈之下,我們只好從”本質上”去解決這個問題。為此,我們開始研究iSMS平台的作用方式,從這邊我們發現, command.ini 裡面就跟我們一般寫的程式語言一樣,可以直接用 echo 就寫出顯示的訊息 ( 不過他就不會執行到MsgBox ,所以沒有 Sender…. 之類的 )

Web實作方法 解決之道 :

而每個 command 後的 $msg 就是執行結果所存到的地方,還有,也是最重要的就是 Exec跟我們寫過的 Exec 一樣就是找到路徑中的程式來執行 ( 沒有限定要在cgi-bin底下 ) 。

Web實作方法 解決之道 :

而每個 command 後的 $msg 就是執行結果所存到的地方,還有,也是最重要的就是 Exec跟我們寫過的 Exec 一樣就是找到路徑中的程式來執行 ( 沒有限定要在cgi-bin底下 ) 。

Web實作方法 解決之道 :

所以,當我們要使用 python 、 perl 之類直譯式的程式,我們就 Exec python.exe在放入 dic.py 這樣就可以了,一定要有執行檔的迷思就這樣解除了,我們也順利的完成了 Query 這部分的簡訊功能。

/* 感謝各位看倌 咱們下次再見 XD */