顯示具有 網路 標籤的文章。 顯示所有文章
顯示具有 網路 標籤的文章。 顯示所有文章

2008-04-26

use socket to transfer files

作業目標:

實作能夠接受多個Client 的連線要求之socket程式。

利用fork(),瞭解執行緒運作流程。

利用fopen, SendFile, FileInputStream,將檔案封裝進packet透過socket傳送。

熟悉撰寫C語言程式與linux相關之操作。

作業成果:

提供client端上傳各種格式的檔案給server端,並可支援多人同時上傳。

功能設計:

client直接輸入指令,輸入server端的IP位址, 要傳送的檔名, port number,即可傳送。

編輯器:

VIM

Compiler:

gcc

執行環境:

Ubuntu 7.10

執行步驟:

1. server開啟等待接收檔案,注意該資料夾的狀態,此時資料夾並無圖檔。









2. client輸入server IP以及port number, 檔案名稱。本範例為傳送一企鵝圖檔。

3. server端開啟新的process,並且接收檔案完成。

4. 至該資料夾看看,圖檔已正確送達,增加了一個企鵝圖案。








5. 用圖片瀏覽器開啟看看。

作業環境桌面:












程式撰寫心得:

本次寫的是可多人連線的傳檔程式,但是過程中也發現,並不是每次傳檔都會100%成功,可能還要加一些比較詳密的應用層協定,例如FTP的協定,如此才能在不管檔案多大的狀態下,都能傳送完全,所以在撰寫程式後,自己也更瞭解socket傳檔的過程,藉由遇到可能發生的問題,進而思考出解決的辦法,期末的專題比賽也有用到傳檔的功能,所以也幫助我更加瞭解。

2008-03-19

應用程序介面

應用程序介面,(Application Programming Interface,簡稱API),就是軟體系 統不同組成部分銜接的約定。由於近年來軟體的規模日益龐大,常常會需要把複雜的系統劃分成小的組成部分,編程介面的設計十分重要。程序設計的實踐中,編程 介面的設計首先要使系統的職責得到合理劃分。良好的介面設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系 統的維護性和擴展性。

應用程序介面為:「『電腦作業系統』或『程式函式庫』提供給應用程式呼叫使用的原始碼」。其主要目的是讓應用程式開發人員得以呼叫一組常式功能,而無須考慮其底層的原始碼為何、或理解其內部工作機制的細節。API本身是抽象的,它僅定義了一個介面,而不涉入應用程式如何實現的細節。

例如,圖形中的一組API定義了繪製指標的方式,可於螢幕上顯示指標。當應用程式需要指標功能時,可引用、編譯時連結到這組API,而執行時就會呼叫此API的實現(庫)來顯示指標。


應用程序介面是一組數量上千、極其複雜的函數和副程式,可讓程式設計師做很多工作,譬如「讀取文件」、「顯示選單」、「在視窗中顯示網頁」等等。作業系統的API可用來分配記憶體或讀取檔案。許多系統應用程式藉由API介面來實現,像是圖形系統、資料庫、網路Web服務,甚至是線上遊戲。

應用程序介面有諸多不同設計。用於快速執行的介面通常包括函數常量變數資料結構。也有其它方式,如通過解釋器,或是提供抽象層以遮蔽同API實現相關的信息,確保使用API的代碼無需更改而適應實現變化。


一組應用程序介面經常是一套軟體開發工具包(SDK)的一部分。

2008-02-29

SSID:無線網路識別碼(SSID, Service Set Identifier)



例如您的 Access Point 和一堆無線網卡,就可以算是一個無線網路服務組。您可以為每一個無線網路服務組其定義一個識別代號,這個代號就是 SSID 是由 32 個字元長度的字母、數字或符號所組成。同一個服務組的設備可以使用 SSID 來驗證另外一個網路設備是否為同一個群組。
例如您的 Access Point 就可以透過在無線網卡里組態的 SSID,來判斷是否為同一個群組,
如果是相同的 SSID,就允許網卡存取; 如果不是則會禁止存取無線網路。