生活随笔
收集整理的這篇文章主要介紹了
Java TCP实现文件传输
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
server端流程:
創(chuàng)建ServerSocket對(duì)象,指名端口號(hào)。調(diào)用accept( )方法,獲取客戶端socket。創(chuàng)建輸入流,用于讀取網(wǎng)絡(luò)數(shù)據(jù)。創(chuàng)建文件輸出流, 將數(shù)據(jù)輸出為文件。創(chuàng)建輸出流,發(fā)送反饋信息。
public void server() throws IOException {try (ServerSocket server
= new ServerSocket(9090);Socket socket
= server
.accept();InputStream in
= socket
.getInputStream();OutputStream out
= socket
.getOutputStream();FileOutputStream fout
= new FileOutputStream(new File("pic_tranced.jpg"))) {byte[] buffer
= new byte[1024];int len
;while ((len
= in
.read(buffer
)) != -1) {fout
.write(buffer
, 0, len
);}out
.write("文件傳輸完成.".getBytes());}}
client段流程:
創(chuàng)建Socket對(duì)象,指名服務(wù)端IP地址和端口號(hào)。創(chuàng)建輸出流,用于發(fā)送網(wǎng)絡(luò)數(shù)據(jù)。創(chuàng)建文件輸入流,讀取文件數(shù)據(jù)。調(diào)用shutdownOutput( )方法,取消read( )阻塞。創(chuàng)建輸入流,接收服務(wù)端的反饋信息。
public void client() throws IOException {try (Socket socket
= new Socket(InetAddress.getByName("127.0.0.1"), 9090);OutputStream out
= socket
.getOutputStream();InputStream in
= socket
.getInputStream();ByteArrayOutputStream bout
= new ByteArrayOutputStream();FileInputStream fin
= new FileInputStream(new File("pic.jpg"))) {byte[] buffer
= new byte[1024];int len
;while ((len
= fin
.read(buffer
)) != -1) {out
.write(buffer
, 0, len
);}socket
.shutdownOutput();byte[] serverBuffer
= new byte[1024];int length
;while ((length
= in
.read(serverBuffer
)) != -1) {bout
.write(serverBuffer
, 0, length
);}System.out
.println(bout
.toString());}}
總結(jié)
以上是生活随笔為你收集整理的Java TCP实现文件传输的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。