簡易檔案收發器

2021-09-25 14:45:55 字數 1833 閱讀 9960

簡易檔案收發器

實現的功能是:

客戶端向伺服器傳送檔名,伺服器接受並判斷是否存在此檔案,若不存在則向客戶端反饋不存在,若存在則反饋檔名及大小(位元組數),並傳送,由客戶端接收.

主要理論:

運用了socket網路輸入輸出流,使伺服器和客戶端都建立了記憶體與網路的交流;

運用了file檔案輸入輸出流,同樣還它們建立了記憶體與硬碟的交流;

運用了thread執行緒,使伺服器支援多客戶端併發.

模擬為server伺服器發檔案,client客戶端收檔案

server伺服器部分

分為兩個部分,我把它們分別稱之為管理員操作端和後台執行緒執行(實現)端

伺服器管理員操作端

public class server

}}

伺服器後台執行緒執行(實現)端

public class threadhandler implements runnable

@override

public void run() else

// 準備傳送檔案

system.out.println("開始傳送檔案...");

// 建立檔案輸入流,將硬碟中的檔案讀入到記憶體中

datainputstream i = new datainputstream(

new bufferedinputstream(new fileinputstream(file)));

byte buffer = new byte[1024 * 1024];

int len = -1;

while (true)

if (len == -1)

dos.write(buffer, 0, len);

dos.flush();

}system.out.println("..........檔案傳送完畢..........");

dos.close();

dis.close();

i.close();

} catch (ioexception e)

}}

client客戶端部分

客戶端

public class client

// 接收檔名和檔案大小

dis.readutf();

string filesize = dis.readutf();

system.out.println(filename + "此檔案在伺服器中存在" + ",檔案長度= " + filesize + "位元組");

// 準備接收檔案

system.out.println("開始接收檔案...");

// 建立檔案輸出流中的檔案寫入到硬碟中

dataoutputstream o = new dataoutputstream(new bufferedoutputstream(

new fileoutputstream(new file("e:/client/" + filename))));

byte buffer = new byte[1024 * 1024];

int len = -1;

while (true)

if (len == -1)

o.write(buffer, 0, len);

o.flush();

} system.out.println("檔案接收完畢");

dos.close();

dis.close();

o.close();

socket.close();

}}

光纖收發器

注 1.左上角 亮時代表1000m速率 2.右上角 亮時代表100m速率 3.左中間 亮時代表已接上尾纖,閃爍代表正在傳輸資料 4.右中間 亮時代表已接上網線,閃爍代表正在傳輸資料 5.左下角 亮時代表已接入電源線 6.右下角 亮時代表全雙工速率 滅時代表半雙工 由於我們常使用的網線 雙絞線 的最大...

串並轉換收發器 千兆光纖收發器調整措施

千兆光纖收發器 又名光電轉換器 是一種快速乙太網,其資料傳輸速率達1gbps,仍採用csma cd的訪問控制機制並與現有的乙太網相容,在佈線系統的支援下,可以使原來的快速乙太網平滑公升級並能充分保護使用者原來的投資。那麼,千兆光纖收發器的調整措施有哪些呢?接下來我們就一起來詳細看看吧!一 降低衰減值...

關於光電收發器(1)

曾經碰到一起網路故障案例。使用者是校校通的乙個單點,出現上網異常,但最奇怪的是ftp可以使用。現場測試,ping閘道器丟包比較嚴重,時延較大,ftp速度稍慢,但可以在100k以下傳輸資料,打不開任何網頁。到局端模組局查裝置,從單點所在交換機埠測試網路完全正常,再到下聯光電收發器,測試一切還是正常,證...