java实现两台计算机的互联,如何用Java语言实现两台计算机之间的文件传输?
最近新學(xué)習(xí)了Java語(yǔ)言,算是一個(gè)小白,想用TCP Socket進(jìn)行網(wǎng)絡(luò)編程,使得服務(wù)器端接受客戶端的文件,但是遇到了一個(gè)錯(cuò)誤,有人知道該怎么解決嗎?
//這是服務(wù)器端的代碼
public class UploadServer {
public static void main(String[] args) {
System.out.println("服務(wù)器端運(yùn)行...");
try {
//創(chuàng)建一個(gè)ServerSocket監(jiān)聽(tīng)8080端口的客戶端請(qǐng)求
ServerSocket serverSocket = new ServerSocket(8080);
//使用accept()阻塞當(dāng)前線程,等待客戶端請(qǐng)求
Socket socket = serverSocket.accept();
//由Socket獲得輸入流,并創(chuàng)建緩沖輸入流
BufferedInputStream in = new BufferedInputStream(socket.getInputStream());
//由文件輸出流創(chuàng)建緩沖輸出流
FileOutputStream out = new FileOutputStream("G:\站點(diǎn)\新建文本文檔.txt");
//創(chuàng)建一個(gè)緩沖區(qū)
byte[] buffer = new byte[1024];
//首次向Socket讀取數(shù)據(jù)
int len = in.read(buffer);
while (len != -1) {
//寫(xiě)入數(shù)據(jù)到文件
out.write(buffer, 0, len);
//再次從Socket讀取數(shù)據(jù)
len = in.read(buffer);
}
System.out.println("接收完成!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
//這是客戶端的代碼
public class UploadClient {
public static void main(String[] args) {
System.out.println("客戶端運(yùn)行...");
try {
//向非本機(jī)的8080客戶端發(fā)出請(qǐng)求
Socket socket = new Socket("192.168.0.106",8080);
//由Socket獲得輸出流,并創(chuàng)建緩沖輸出流
BufferedOutputStream out = new BufferedOutputStream(socket.getOutputStream());
//創(chuàng)建文件輸入流
FileInputStream fin = new FileInputStream("F:\站點(diǎn)\新建文本文檔.txt");
//由文件輸入流創(chuàng)建緩沖輸出流
BufferedInputStream in = new BufferedInputStream(fin);
//準(zhǔn)備一個(gè)緩沖區(qū)
byte[] buffer = new byte[1024];
//首次讀取文件
int len = in.read(buffer);
while(len != -1) {
//數(shù)據(jù)寫(xiě)入Socket
out.write(buffer,0,len);
//再次讀取文件
len = in.read(buffer);
}
System.out.println("上傳成功!");
} catch(ConnectException e) {
System.out.println("服務(wù)器未啟動(dòng)!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
先運(yùn)行服務(wù)器端,在運(yùn)行客戶端
客戶端顯示:
服務(wù)器端顯示:
服務(wù)器端的第27行是 int len = in.read(buffer);
該如何處理這個(gè)異常呢,求解!!!
回答
客戶端傳輸完成后關(guān)閉輸出流
總結(jié)
以上是生活随笔為你收集整理的java实现两台计算机的互联,如何用Java语言实现两台计算机之间的文件传输?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Flink随笔(1)
- 下一篇: 笔记:区分文件头lang=”zh”和la