freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

文件傳輸協(xié)議的簡(jiǎn)單設(shè)計(jì)與實(shí)現(xiàn)(已修改)

2025-06-11 22:04 本頁(yè)面
 

【正文】 文件傳輸協(xié)議的簡(jiǎn)單設(shè)計(jì)與實(shí)現(xiàn)摘要:文件傳送是各種計(jì)算機(jī)網(wǎng)絡(luò)都實(shí)現(xiàn)的基本功能,文件傳送協(xié)議是一種最基本的應(yīng)用層協(xié)議按照客戶/服務(wù)器的模式進(jìn)行工作,提供交互式的訪問(wèn),是INTERNET使用最廣泛的協(xié)議之一。本設(shè)計(jì)是用JAVA語(yǔ)言簡(jiǎn)單實(shí)現(xiàn)文件傳輸協(xié)議,利用SOCKET以及SERVERSOCKE等類方法,當(dāng)中實(shí)現(xiàn)了上傳、下載、獲取服務(wù)器目錄等基本文件傳輸功能。關(guān)鍵字:文件傳輸、FTP。1 具體設(shè)計(jì)任務(wù)1.1實(shí)驗(yàn)內(nèi)容我們的計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)環(huán)境建立在TCP/IP 網(wǎng)絡(luò)體系結(jié)構(gòu)之上。各計(jì)算機(jī)除了安裝TCP/IP 軟件外,還安裝了TCP/IP 開(kāi)發(fā)系統(tǒng)。實(shí)驗(yàn)室各計(jì)算機(jī)具備Windows環(huán)境中套接字socket 的編程接口功能,可為用戶提供全網(wǎng)范圍的進(jìn)程通信功能。本實(shí)驗(yàn)要求學(xué)生利用這些功能,設(shè)計(jì)和實(shí)現(xiàn)一個(gè)簡(jiǎn)單的文件傳送協(xié)議。1.2具體要求用socket 編程接口編寫兩個(gè)程序,分別為客戶程序()和服務(wù)器程序(),該程序應(yīng)能實(shí)現(xiàn)下述命令功能:get:取遠(yuǎn)方的一個(gè)文件put:傳給遠(yuǎn)方一個(gè)文件pwd:顯示遠(yuǎn)主當(dāng)前目錄dir:列出遠(yuǎn)方當(dāng)前目錄cd :改變遠(yuǎn)方當(dāng)前目錄? :顯示你提供的命令quit :退出返回 此命令的具體工作方式(指給出結(jié)果的形式)可以參照FTP 的相應(yīng)命令,有余力的同學(xué)可以多實(shí)現(xiàn)幾個(gè)命令。2 基本思路及所涉及的相關(guān)理論 文件傳輸協(xié)議 網(wǎng)絡(luò)協(xié)議是網(wǎng)絡(luò)中計(jì)算機(jī)與終端之間正確傳送信息和數(shù)據(jù)的規(guī)范格式,起包括語(yǔ)法、語(yǔ)義和時(shí)序這三部分。文件傳輸協(xié)議(File Transfer Protocol, FTP)是在TCP/IP網(wǎng)絡(luò)中傳輸文件的一種格式規(guī)范,其規(guī)定在用戶和服務(wù)器之間開(kāi)設(shè)兩個(gè)通信端口:控制端口和數(shù)據(jù)端口。前者生存周期為從用戶登錄開(kāi)始直至用戶登出,后者則在進(jìn)行數(shù)據(jù)傳送的時(shí)候打開(kāi),并且在數(shù)據(jù)傳送完畢之后立即結(jié)束??刂贫丝谟脕?lái)監(jiān)聽(tīng)雙方共同規(guī)定的控制字以達(dá)到及時(shí)提供服務(wù)或響應(yīng),數(shù)據(jù)端口則要先將文件拆分成分組再進(jìn)行傳送,這樣做的目的是為了更加好的適應(yīng)網(wǎng)絡(luò)中的帶寬限制,以及減少傳送期間節(jié)點(diǎn)的延時(shí),以達(dá)到高速傳送。 基本思路: 模擬FTP的工作模式,在雙方工作的時(shí)候開(kāi)設(shè)兩個(gè)端口,作為控制端口(2332)和數(shù)據(jù)端口(2326)。 規(guī)范控制字如下: LIST: 獲得服務(wù)器目錄 LOGIN: 登陸 GET: 下載 PUT: 上傳 QUIT: 登出 對(duì)應(yīng)服務(wù)器響應(yīng)返回控制字: 555: 發(fā)送列表完畢 444: 登錄成功 000: 登陸失敗 666: 下載結(jié)束 888: 服務(wù)器關(guān)閉 模擬FTP工作機(jī)制,確定數(shù)據(jù)端口傳送數(shù)據(jù)時(shí),進(jìn)行分組傳送。 服務(wù)器從打開(kāi)開(kāi)始,保持監(jiān)聽(tīng)控制端口,當(dāng)用戶登陸成功后,主動(dòng)分配該用戶服務(wù)線程。 在傳送數(shù)據(jù)的時(shí)候,為了確保不影響原程序的工作,應(yīng)獨(dú)立分配線程。3 方案設(shè)計(jì)(主要網(wǎng)絡(luò)設(shè)備、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)設(shè)計(jì)圖)本設(shè)計(jì)基本設(shè)計(jì)圖如下:客戶端服務(wù)器數(shù)據(jù)傳輸控制字傳輸4 網(wǎng)絡(luò)具體配置步驟 服務(wù)器: 服務(wù)器界面: JPanel jp1 = new JPanel(), jp2 = new JPanel(), jp3 = new JPanel()。 JButton jb = new JButton(開(kāi)始), jb2 = new JButton(end), jb3 = new JButton(del),jb4 = new JButton(瀏覽)。 static JTextArea jt = new JTextArea()。 boolean bool = true。 JSplitPane jsp = new JSplitPane()。 JSplitPane jsp1 = new JSplitPane()。 static JScrollPane jsc = new JScrollPane()。 JPanel jp = new JPanel()。 static String newpath = null。 static DefaultMutableTreeNode root。 static JTree tree。 String name。 String ipaddress。//實(shí)例化一些界面控件 ftpserver() { super(服務(wù)器)。//新建一個(gè)繼承frame類的窗口 (600, 500)。//設(shè)置窗口大小 ()。 ().add(jsp)。//添加JSplitPane面板 ((int) (() * ))。 (jsc)。//設(shè)置JSplitPane面板左邊的內(nèi)容 (jsp1)。 //設(shè)置JSplitPane面板右邊的內(nèi)容 ((int) (() * ))。 (jt)。 (jp)。 (this)。 (this)。 (this)。 (this)。//為按扭添加監(jiān)聽(tīng) (jb)。 (jb2)。 (jb3)。 (jb4)。//在面板中添加按扭 ()。 ()。//設(shè)置滾動(dòng)條方式 Toolkit kit = ()。 Dimension screenSize = ()。//獲得屏幕窗口大小 Dimension frameSize = ()。//獲得當(dāng)前程序窗口大小 if ( ) { = 。 } if ( ) { = 。 } (( ) / 2, ( ) / 2)。//窗口居中算法 (true)。//設(shè)置窗口可見(jiàn) 本地目錄獲得:if((jb4)){//“瀏覽”按扭的響應(yīng)事件try{JFileChooser jf=new JFileChooser()。//打開(kāi)一個(gè)文件選擇窗口()。//設(shè)置選擇文件模式int returnval = (this)。File chfile = ()。//獲得所選擇的文件newpath = ()。//獲得所選文件的路徑if(returnval == ){//“打開(kāi)”按鈕的響應(yīng)事件flush()。//調(diào)用flush函數(shù)}else {(this,沒(méi)有選擇文件)。}}catch(Exception ee){}}//flush函數(shù)protected void flush() {DefaultMutableTreeNode dd = new DefaultMutableTreeNode(newpath)。tree = new JTree(dd)。//新建一個(gè)結(jié)點(diǎn)為dd的樹(shù)構(gòu)造setTree(dd, newpath)。//調(diào)用setTree函數(shù)().setView(tree)。//將生成的樹(shù)插入滾動(dòng)條中(0)。//展開(kāi)根結(jié)點(diǎn)(this)。//為樹(shù)結(jié)點(diǎn)添加選擇響應(yīng)監(jiān)聽(tīng)}//setTree函數(shù)private static void setTree(DefaultMutableTreeNode root2, String path) {File file = new File(path)。String[] fname = ()。//獲path路徑下的目錄和文件名for (int j = 0。 j 。 j++) {File f = new File(()+\\+fname[j])。if (()) {//是文件則添加文件DefaultMutableTreeNode d = new DefaultMutableTreeNode(fname[j])。(d)。} else {//是目錄則添加目錄DefaultMutableTreeNode d = new DefaultMutableTreeNode(fname[j])。(d)。setTree(d,
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1