Mengakses Web Server dengan URL

Contoh di bawah ini mengakses web server menggunakan kelas URL dari paket .net. Sama sebagaimana contoh pemanfaatan kelas socket, kode ini menampilkan isi (dari sisi client) dari halaman HTML yang diakses:


import java.net.*;
import java.io.*;

public class GetURLPage {

    public static void main(String args[]) {

        try {
            URL url = new URL("http://localhost/");

            BufferedReader dis = new BufferedReader(new InputStreamReader(url.openStream()));

            String line;
            while ((line = dis.readLine()) != null) {
                System.out.println(line);
            }

            dis.close();
        } catch (Exception e) {
            System.out.println(e);
        }
    }
} // akhir dari GetURLPage.java

Advertisements

Mengakses Web Server dengan Socket

Kode program singkat di bawah ini memperlihatkan cara mengakses suatu web site dan mengambil contentnya:


import java.io.*;
import java.net.*;

public class GetSocketPage {

    public static void main(String args[]) throws IOException {
        //bangun koneksi ke server web, port 80
        Socket sock = new Socket("trunojoyo.ac.id", 80);

        //siapkan saluran input & output
        BufferedReader dis = new BufferedReader(new InputStreamReader(sock.getInputStream()));
        PrintStream ps = new PrintStream(sock.getOutputStream());

        //kirim pesan GET ke server web
        ps.println("GET /index.html");
        String line;

        //baca baris demi baris file index.html, cetak ke screen
        while ((line = dis.readLine()) != null) {
            System.out.println(line);
        }

        //tutup koneksi ke server
        sock.close();
    }
} // akhir dari GetSocketPage.java

Hasil eksekusinya akan menampilkan halaman HTML dari web site yang disebutkan, termasuk kode javascript dan CSS yang terdapat dalam halaman HTML tersebut.

Pemrograman Jaringan 2009: Referensi

Tulisan ini berusaha menyediakan beberapa materi penting terkait dengan materi kuliah Pemrograman Jaringan yang saya ampu bersama tim pada Semester 1 (ganjil) 2009/2010 di Jurusan Teknik Informatika Universitas Trunjoyo. Semua materi baik berupa link ke web site lain maupun file yang dapat didownload secara langsung bersifat Open Content alias boleh digunakan tanpa harus meminta ijin pemiliknya, tidak harus membelinya.

computer_network_mug

Saatnya hidup nyaman dan terhormat dengan memanfaatkan hal-hal yang legal dan berkualitas.

Continue reading

Java: Memulai Pemrograman Multithreading

Multithreading mengacu kepada dua atau lebih task (tugas, thread) yang berjalan (sedang dieksekusi) di dalam satu program. Thread merupakan suatu path eksekusi independen di dalam program. Banyak thread dapat nerjalan secara konkuren (berbarengan) di dalam program. Setiap thread di dalam Java dibuat dan dikendalikan oleh kelas java.lang.Thread. Suatu program Java dapat mempunyai banyak thread, dan thread-thread ini dapat berjalan secara bersamaan, secara asinkron atau sinkron.

Multithreading mempunyai beberapa keuntungan, dibandingkan multiprocessing, di antaranya:

  • Thread bersifat lightweight, sedangkan proses lebih berat. Perlu diketahui bahwa proses adalah program yang sedang berada di memory atau processor, sedang dieksekusi. Thread dapat diartikan sebagai anak dari proses.
  • Thread-thread berbagi pakai ruang alamat yang sama dan karena itu dapat berbagi pakai data dan kode (instruksi)
  • Context switching antar thread biasanya lebih murah daripada antar proses.
  • Biaya komunikasi antar thread relatif lebih rendah daripada komunikasi antar proses.
  • Thread memungkinkan task-task berbeda dikerjakan secara konkuren.

Note: Penjelasan lebih detail mengenai konsep thread dan proses dapat dibaca pada buku teks mengenai Sistem Operasi, di antaranya karya Stallings dan Tanenbaum yang banyak digunakan di Universitas di Dunia.

Kelas Thread merupakan turunan dari kelas Object. Kelas Object sendiri mempunyai metode notify(), notifyAll() dan wait(), sedangkan kelas Thread menyediakan metode sleep() dan yield(). Metode-metode ini akan sering digunakan dalam pengelolaan aplikasi banyak thread.

Continue reading

Java: Contoh Server Socket Sederhana

Contoh ini mengenalkan pemrograman soscket dengan Java. Server mendengar (listen) koneksi yang masuk. Ketika suatu koneksi terbangun, client dapat mengirimkan data. Pada kode di bawah ini, client mengirimkan pesan “Hi my server”. Client mengirimkan pesan khusus “bye” untuk menghentikan koneksi dari server. Kemudian server mengirimkan pesan “bye” juga. Terakhir, koneksi diakhiri dan server menunggu koneksi berikutnya. Dua program ini dapat dijalankan pada mesin yang sama. Jika dijalankan pada mesin berbeda, cukup ubah alamat “localhost” dengan suatu IP adress dari mesin di mana server dijalankan.

Continue reading