Java.net : Mengirim dan menerima file

Pada subjek system programming yakni socket programming.

 Socket adalah sebuah cara untuk berkomunikasi dengan program atau node lain menggunakan file deskriptor. Di UNIX (dimana socket diciptakan) kita sering mendengar slogan: “everything is a file”, jadi untuk berkomunikasi dengan program atau node lain semudah kita membaca dan menulis file deskriptor. Antarmuka socket dan file adalah mirip, jika pada file kita membukanya dengan open() sedangkan pada socket kita manggunakan socket(). Pada file deskriptor yang menjadi tujuan adalah sebuah file, sedangkan pada socket adalah komputer atau node lain. Intinya ketika kita telah terhubung dengan socket(), maka antarmukanya sama saja dengan sebuah file. Sebuah abstraksi perangkat lunak yang digunakan sebagai suatu “terminal” dari suatu hubungan antara dua mesin atau proses yang saling berinterkoneksi.

Pada kesempatan ini, kita akan menggunakan library java.net untuk implementasi socket programming. Untuk manualnya dapat dilihat pada java docs atau pada link berikut : http://www.tutorialspoint.com/java/java_networking.htm

FileReceiver.java

import java.io.*;
import java.net.*;
import java.util.*;
public class FileReceiver{
public static void main(String ar[])throws Exception{
ServerSocket ss=new ServerSocket(1234);
Socket clientSocket=ss.accept();
InputStream in=clientSocket.getInputStream();
//OutputStream out=clientSocket.getOutputStream();
FileOutputStream fos=new FileOutputStream("rec.txt");
int x=0;
while(true){
x=in.read();
if(x==-1)break;
fos.write(x);
}
fos.close();
}
}

FileSender.java

import java.io.*;
import java.net.*;
import java.util.*;
public class FileSender{
public static void main(String ar[])throws Exception{
Socket clientSocket=new Socket("127.0.0.1",1234);
//InputStream in=clientSocket.getInputStream();
OutputStream out=clientSocket.getOutputStream();

//PrintStream ps=new PrintStream(out);

FileInputStream fis=new FileInputStream(“/home/aldo/compiler.java”);
int x=0;
while(true){
x=fis.read();
if(x==-1)break;
out.write(x);
}
out.close();
}
}

Singkat saja:

FileInputStream fis=new FileInputStream("/home/aldo/compiler.java");
Pada fungsi FileInputStream dapat anda masukan path dimana file berada

FileOutputStream fos=new FileOutputStream("rec.txt");
Pada fungsi ini file tersebut akan dicopy ke file yang akan menerima

Ini hanya file yang berbentuk txt. Untuk file gambar atau sejenisnya dapat anda modifikasi dengan menyesuaikan constructor yang ada. Silahkan dilihat disini http://docs.oracle.com/javase/1.4.2/docs/api/java/io/FileOutputStream.html

About these ads

About aldochristian
on

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 571 other followers

%d bloggers like this: