كتابة برنامج java لنقل الملفات (إرسال و استقبال) بين جهازين على شبكة محلية
كنت أبحث الأسبوع الماضي عن طريقة لإرسال ملفات من جهاز إلى آخر عن طريق الشبكة المحلية فوجدت كودا أعجبني لسهولته أدخلت عليه بعض التعديلات ليصبح على الشكل التالي
import java.net.*; import java.io.*;
public class FileServer { public static void main (String [] args ) throws IOException { // create socket ServerSocket servsock = new ServerSocket(4007); String requestedFile=null; Socket sock; ObjectInputStream ois=null; while (true) { System.out.println(“Waiting on “+servsock.getLocalPort()+”…”);
sock = servsock.accept(); System.out.println(“Accepted connection : ” + sock);
requestedFile=””;
// receive the request ois = new ObjectInputStream(sock.getInputStream()); try {
requestedFile = (String) ois.readObject(); } catch (ClassNotFoundException e) {
e.printStackTrace();
} System.out.println(“the requested file is “+ requestedFile);
// sendfile
File myFile = new File (requestedFile); byte [] mybytearray = new byte [(int)myFile.length()]; FileInputStream fis = new FileInputStream(myFile); BufferedInputStream bis = new BufferedInputStream(fis); bis.read(mybytearray,0,mybytearray.length); OutputStream os = sock.getOutputStream(); System.out.println(“Sending…”); os.write(mybytearray,0,mybytearray.length); os.flush(); sock.close(); } } } |