標籤:
package netFile;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.Closeable;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.net.Socket;public class SocketTask {//用戶端傳送檔案public static void main(String[] args) {Socket socket = null;BufferedInputStream bis = null;BufferedOutputStream bos= null;try {socket = new Socket("127.0.0.1", 10086);bis = new BufferedInputStream(new FileInputStream("f:"+File.separator+"2.jpg"));bos = new BufferedOutputStream(socket.getOutputStream());byte [] buffer = new byte[1024];int len = 0;while((len = bis.read(buffer)) != -1){bos.write(buffer, 0, len);bos.flush();}socket.shutdownOutput();System.out.println("用戶端發送完成 !");BufferedInputStream is = new BufferedInputStream(socket.getInputStream());is.read();} catch (IOException e) {e.printStackTrace();}finally{close(bis);close(bos);}}private static void close(Closeable close){if(close != null){try {close.close(); } catch (IOException e) {e.printStackTrace();}}}}
package netFile;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedWriter;import java.io.Closeable;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;import java.net.ServerSocket;import java.net.Socket;public class SeverSocketTask {//服務端,接收檔案public static void main(String[] args) {ServerSocket sc = null;BufferedInputStream bis = null; BufferedOutputStream bos = null;try {sc = new ServerSocket(10086);Socket socket = sc.accept();bis = new BufferedInputStream(socket.getInputStream());bos = new BufferedOutputStream(new FileOutputStream("e:"+File.separator+"aa.jpg"));byte [] buffer = new byte[1024];int len = 0;while((len = bis.read(buffer)) != -1){bos.write(buffer, 0, len);bos.flush();}BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));writer.write("服務端已收到訊息!"); writer.flush();socket.shutdownOutput();} catch (IOException e) {e.printStackTrace();}finally{close(bos);}}private static void close(Closeable close) {if(close != null){try {close.close();} catch (IOException e) {e.printStackTrace();}}}}
使用socket類比服務端與用戶端傳輸檔案