1. 程式人生 > >Java從Socket接收大資料

Java從Socket接收大資料

Socket接收大資料時會分成幾個包,一次接收不完。用一個buffer來存接收到的包,用count來標示接收資料的大小。

ServerSocket server = new ServerSocket(8002);  
Socket socket = server.accept();  
DataInputStream in = new DataInputStream(socket.getInputStream());  
DataOutputStream out = new DataOutputStream(new FileOutputStream("result.out"));
byte[] buffer = new byte[4096];
int count = 0;
// count 表示接收了的資料大小,如果為0,則說明接收完畢。
while((count = in.read(buffer))>0){
	out.write(buffer, 0, count);
}
out.close();
in.close();