-
大小: 3KB文件類型: .java金幣: 1下載: 0 次發(fā)布日期: 2021-06-12
- 語言: Java
- 標(biāo)簽: TCP??文件上傳??網(wǎng)絡(luò)通信??
資源簡(jiǎn)介
TCP實(shí)現(xiàn)的文件上傳功能,客戶端向服務(wù)器發(fā)送文本文件,服務(wù)器端接收文本文件內(nèi)容,保存至服務(wù)器
代碼片段和文件信息
/*
* 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的,TCP協(xié)議的文本文件傳輸程序
* 客戶端選擇文件,向服務(wù)器端發(fā)送,服務(wù)器端接收數(shù)據(jù),保存到指定文件中
*/
import?java.io.*;
import?java.net.*;
class?TransClient
{
public?static?void?main(String[]?args)?throws?Exception{
//判斷參數(shù)傳入是否正確
if(args.length?!=?1){
sop(“請(qǐng)輸入需要傳入的文件名路徑!“);
return;
}
File?file?=?new?File(args[0]);
if(!(file.exists()?||?file.isDirectory())){
sop(“此文件不存在,或者該文件是一個(gè)目錄!“);
return;
}
sop(“Success!“);
//創(chuàng)建文件讀取流
BufferedReader?br?=?new?BufferedReader(new?FileReader(file));
//創(chuàng)建套接字,指定服務(wù)器的IP以及端口號(hào)
Socket?socket?=?new?Socket(“192.168.1.119“?10000);
//獲取套接字的輸出流,將文件中的內(nèi)容寫入輸出流,傳送到服務(wù)器端
BufferedWriter?bufw?=?new?BufferedWriter(new?OutputStreamWriter(socket.getOutputStream()));
String?line?=?null;
//readLine()?返回包含該行內(nèi)容的字符串,不包含任何行終止符
while((line?=?br.readLine())?!=?null){
bufw.write(line);
//必須要加入一個(gè)換行,否則服務(wù)器端調(diào)用readLine永遠(yuǎn)無法讀到完整的一行,會(huì)阻塞在那里!
bufw.newLine();
bufw.flush();
}
sop(“Client?read?end...“);
//將套接字socket的輸入流禁用,設(shè)置輸出流達(dá)到末尾(-1),否則服務(wù)器端會(huì)一直等待輸入。
socket.shutdownOutput();
//獲取套接字的輸入流,等待就收服務(wù)器端的反饋
BufferedReader?bufr?=?new?BufferedReader(new?InputStreamRead
評(píng)論
共有 條評(píng)論