Server
publicclassServer{ /** * @param args the command line arguments */ public static void main(String[] args)throwsIOException{ ServerSocket serverSocket =null;try{ serverSocket =newServerSocket(4444); }catch(IOException ex){ System.out.println("Can't setup server on this port number. "); } Socket socket =null; InputStream is =null; FileOutputStream fos =null; BufferedOutputStream bos =null; int bufferSize =0;try{ socket = serverSocket.accept();} catch(IOException ex){ System.out.println("Can't accept client connection. "); }try{ is = socket.getInputStream(); bufferSize = socket.getReceiveBufferSize(); System.out.println("Buffer size: "+ bufferSize); }catch(IOException ex){ System.out.println("Can't get socket input stream. "); }try{ fos =newFileOutputStream("M:\\test2.xml"); bos =newBufferedOutputStream(fos); }catch(FileNotFoundException ex){ System.out.println("File not found. "); } byte[] bytes =newbyte[bufferSize]; int count; while((count = is.read(bytes))>0){ bos.write(bytes,0, count); } bos.flush(); bos.close(); is.close(); socket.close(); serverSocket.close();}
}
and the Client
publicclassClient{ /** * @param args the command line arguments */ public static void main(String[] args)throwsIOException{ Socket socket =null; String host ="127.0.0.1"; socket =newSocket(host,4444); File file =newFile("M:\\test.xml");// Get the size of the file long length = file.length(); if(length >Integer.MAX_VALUE){ System.out.println("File is too large."); } byte[] bytes =newbyte[(int) length]; FileInputStream fis =newFileInputStream(file); BufferedInputStream bis =newBufferedInputStream(fis); BufferedOutputStream out =newBufferedOutputStream(socket.getOutputStream()); int count; while((count = bis.read(bytes))>0){ out.write(bytes,0, count); } out.flush(); out.close(); fis.close(); bis.close(); socket.close();}
}