Jumat, 19 April 2013

Membuat sebuah Proxy server


nProxy merupakan pihak ketiga yang berdiri ditengah-tengah antara kedua pihak yang saling berhubungan dan berfungsi sebagai perantara
nSecara prinsip pihak pertama dan pihak kedua tidak secara langsung berhubungan, akan tetapi masing-masing berhubungan dengan perantara, yaitu proxy.

 

Langkah-langkahnya

1. Buka terminal dan pastikan konek internet

2. Kalau ada pilihan Y/N masukin aja Y sampek tuh komputer gak nanya-nanya lagi 

3. Ketik apt-get install squid3 untuk install squid proxy 3

4. Untuk melakukan Setting langsung masuk ke /etc/squid3/squid.conf, bisa menggunakan nano atau gedit

Hal-hal yang bisa diatur dalam Proxy server sebenernya ada banyak tapi disini kita akan bahas beberapa saja, yaitu:

1.  Cache Peer

·        Cache_peer adalah metode squid dalam melakukan hirarki akses, squid memungkinkan dirinya untuk bekerjasama dengan mesin proxy yang lain

·        Cache_peer sangat berguna bagi mesin yang tidak punya koneksi langsung ke internet tapi bisa mengakses ke suatu proxy yang konek ke internet (mesin yang punya akses ke internet disebut dengan parent)

·        Cache_peer

a)     cache_peer parent.foo.net   parent 3128 3130

b)     Parent.foo.net adalah mesin parent yang membuka port pada 3128

c)     Untuk mesin parent yang memerlukan autentifikasi user maka perlu ditambahkan (Login=username:password)

·        Untuk mengecek apakah konfigurasi sudah benar masukkan

- Ketik export http_proxy=http://mesinparent:3128

- lakukan update(apt-get update)

 

 

 

 

 

 

 

 2. Membatasi kecepatan download

 

      Misalnya kita ingin membatasi bandwidth sebuah komputer dengan ip tertentu atau semua komputer

·         Acl client1 src  ip_client

·         Acl malam time AS 17:00-23:59 (untuk mengatur waktu yang dibatasi bandwidthnya)

·         delay_pools 1 (jumlah aturan yang mengatur tentang bandwidth)

·         delay_class 1 1

·         delay_parameters 1 32000/32000 (kecepatan download 4kbps)

·         delay_access 1 allow client1 malam (untuk membatasi komputer dengan ip_client,  jika ingin membatasi semua komputer tinggal mengganti client 1 dengan all)

 

3. Membatasi file yang bisa didownload

      Misalnya tidak boleh mendownload file tipe mp3 ataupun 3gp

·        acl nama_aturan url_regex –i file_type/alamat file

 
Read More ->>

Rabu, 17 April 2013

Membuat sebuah Webserver


Kalau sebelumnya kita udah belajar membuat jaringan (baca postingan ane sebelumnya) sekarang bagaimana kalau kita belajar tentang web server? setuju kan? yah setuju aja deh gan, biar gak repot :P
Allright, sekarang ane dapet tugas lagi dari asisten praktikum ane, namanya mas Bayu (untung gak bisa mention :P ) untuk buat laporan hasil praktikum tentang web server. Kebetulan ane pake apache enn………gak ketinggalan OS-nya Linux punya gan (y)
Yang jadi servernya satu aja ya gan, pilih salah satu dari host yang udah kita buat sebelumnya. Singkat kata singkat cerita, langsung aja ane kasitau cara mulai download sampe konfigurasinya :
1. Buka terminal dan pastikan konek internet, ketik sudo apt-get install apache2
2. Kalau ada pilihan Y/N masukin aja Y sampek tuh komputer gak nanya-nanya lagi :D
3. Install lynx buat testing sambungan nanti, caranya sudo apt-get install lynx terus ulangi langkah 2
4. sudo apt-get install mysql-server untuk instal mysql
5. sudo apt-get install phpmyadmin untuk instal phpmyadmin. Kalau ada pilihan web server yang akan dipakai, pilih apache2 dengan tekan tombol spasi, setelah itu enter atau OK
6. Setelah semuanya terinstal dan siap digunakan, sekarang kita konfigurasi apache-nya, dengan nano /etc/apache2/sites-available/default
Banyak yang bisa kita lakukan di sini gan, salah satunya untuk menetapkan port yang jadi admin, menentukan directory admin, sampai tidak menampilkan list directory jika hanya terdapat file index di situ. Biar gak ribet langsung ane kasih skrinsut-nya aja ya :)
Image

7. Ada lagi gan, kita bisa ngasih password dan username di port yang diakses, caranya:
  • nano /var/www/.htaccess
  • Isi seperti gambar yang terlampir di bawah
  • simpan lalu keluar
  • htpasswd -c htpasswd (username)
  • masukkan passwordnya
  • test dengan masuk ke port yang dituju, dalam hal ini port 8080 dengan cara lynx localhost(IP server kalau ngetesnya dari client):8080
  • Kalau diminta username dan password berarti bener (y)
Image

OK, itu konfigurasi simple yang bisa ane share, sekarang kita masuk ke yang lebih teknis (perasaan dari tadi udah teknis deh -___-), yakni gimana caranya konfigurasi web server biar bisa pakek SSL dengan kasus self-signed-certificate. Cekidot gan :
  1. sudo a2enmod ssl
  2. sudo service apache2 restart
  3. sudo mkdir /etc/apache2/ssl
  4. sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
    selanjutnya akan ada beberapa pertanyaan, jawab aja gan dengan jujur, hehe. Untuk pertanyaan pertama kalau agan orang Indonesia bisa ketik ID.
  5. sudo nano /etc/apache2/sites-available/default-ssl
  6. Cari kata kunci di bawah ini, pastikan isinya sama
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
  7. sudo a2ensite default-ssl
  8. sudo service apache2 reload
  9. test dengan akses lynx https://localhost(IP server), kalau ada tulisan “it works!” di paling atas berarti udah bener gan (y)
Terakhir, ane bagi tips untuk optimalisasi kerja server (biyasa disebut tunning). Jadi di apache itu ada kapasitas client sebanyak 250 untuk 1 GB RAM, nah tergantung RAM yang agan punya, bisa dihitung MaxClient yang dimungkinkan untuk optimasi. Misal RAM yang agan punya 8MB, berarti MaxClient = (250×8)/1024 hasilnya dibulatkan ke atas ya gan, kan gak mungkin client jumlahnya gak jangkep (maaf roaming, hehe)
Kalau udah dihitung, langsung ketik nano /etc/apache2/apache2.conf
Ganti nilai MaxClients dengan hasil itung-itungan agan sekalian, semuanya dari atas sampai bawah. Pokoknya kalau keliatan “MaxClients” angka di sebelah kanannya langsung ganti aja :D
OK gan, sekian ilmu yang bisa ane bagi, semoga bermanfaat. Kalau agan ada waktu, silahkan baca pengaturan proxy di blog temen kelompok praktikum ane di iswahyudi-tc11.blogspot.com
Read More ->>

Membuat Sebuah Jaringan Virtual dengan UML


Ceman-ceman, tau nggak kalau di tempat kuliah ane sekarang matkulnya (matkul = mata kuliah) serba pake linux? Yah yang dipake distro apa aja deh, mungkin ini salah satu usaha penerapan Go Open Source di Indonesia. Itu aja curcolnya, kebetulan sekarang ane dapet tugas bikin laporan hasil praktikum tentang membangun jaringan dengan server yang pake OS Linux. Mangkanya jangan kemana-mana, simak penjelasan ane tentang bagaimana membangun sebuah jaringan berikut pengaturannya yang begitu kompleks. Jangan pesimis dulu gan, liat caranya ya, pasti ntar agan-agan ngerasa gampang (y)

Untuk membangun jaringan, tentu kita membutu

hkan “node” yang berlaku sebagai server dan “node” yang berperan sebagai client. Sebelum bisa membuat node, kita harus punya “akun” atau line sendiri di jaringan yang bersangkutan. Nah, kebetulan praktikum ane yang kemaren jaringannya dibuat secara virtual (buat yang gak tau apa itu virtual silahkan googling sendiri ya), jadi kita harus punya semacem IP di jaringan itu. Sekarang kita bangun dulu setiap node-nya dengan membuat script yang berisi perintah building node ya
1. Buka terminal
2. ssh -X (nama akun)@(IP akun)
3. Setelah terhubung, mulai buat script dengan nano (nama script).sh
4. Ketikkan ini di dalamnya
uml_switch -unix (switch_name) > /dev/null < /dev/null & –> membuat switch
xterm -T (host_name) -e linux ubd0=(host_name),(nama file uml) umid=(host_name) (eth??)=daemon,,,(host_switch) & –> membuat host
xterm -T (router_name) -e linux ubd0=(router_name),(uml_filesystem) umid=(router_name) (eth??)=daemon,,,(router_switch) (bisa lebih dari satu sambungan) & –> membuat router
Jangan lupa dijalankan ya, dengan syntax: ./(namafile).sh
5. Setelah membuat node-nya, kita buat koneksi atau penghubung antara node-node itu. Istilahnya kalau kita gambarkan secara fisik, kita buat kabel penyambung yang menghubungkan ketiga node tersebut. Caranya
nano /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address blablabla
netmask blablabla
gateway blablabla
auto eth1
iface eth1 inet static
address blablabla
netmask blablabla
6. Setelah itu kita lakukan edit pada rc.lokal dengan nano /etc/rc.local dan sebelum baris exit 0, tambahkan
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j  MASQUERADE
7. Kalau sudah disiapkan arsitektur jaringan di dalam, kita buat agar jaringan tersebut bisa terhubung dengan jaringan luar (paling tidak dapat passing paket/data ke luar jaringan), maka kita lakukan pengaturan dengan nano /etc/sysctl.conf dan hilangkan tanda comment “#” sebelum tulisan net.ipv4.ip_forward=1
8. Jangan lupa kalau sudah membuat script untuk menciptakan, siapkan juga script pemusnah, yaitu untuk meng-kill semua node yang dibuat kalau kita sudah hendak keluar dari jaringan virtual itu. Buat script dengan nano (namafile).sh dan isikan
uml_mconsole (nama router) halt &
uml_mconsole (nama host) halt &
uml_mconsole (nama host lainnya kalau ada) halt &
9. Lakukan testing untuk jaringan virtual yang dibuat dengan ping jaringan luar. Kalau tidak ada balasan, bisa jadi terjadi kesalahan pada konfigurasi agan-agan sekalian :)
Jangan lupa, untuk setiap penyetelan, harus dilakukan reboot, restart atau reload. Tergantung tahap yang sudah dicapai. Hal itu bertujuan untuk mengupdate setelan pada jaringan yang kita buat
Oh iya hampir lupa, buat jaringannya jangan asal ya, perhatikan topologinya juga, ini contohnya 

Read More ->>

Kamis, 14 Maret 2013

Lapres Jarkom Modul1


LAPORAN RESMI
PRAKTIKUM JARINGAN KOMPUTER
MODUL 1




                                                           



Kelompok C12:
1. Iswahyudi               5111100006
2. Febry Amin N       5111100033




LABORATORIUM ARSITEKTUR DAN JARINGAN KOMPUTER
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INFORMASI
INSTITUT TEKNOLOGI SEPULUH NOPEMBER
2013


SOAL PENDAHULUAN MODUL 1 .1
PRAKTIKUM JARINGAN KOMPUTER 2012/2013
ANALISA PAKET DAN CABLING
1.      Apa itu wireshark? Jelaskan kegunaan dan cara kerja wireshark!
2.       Apa itu crimping? Jelaskan kapan harus menggunakan kabel straight dan cross, dan bagaimana cara menyusunnya dan sertakan gambar masing – masing susunan kabel!
3.      Jelaskan apa yang kalian ketahui dari gambar di bawah ini secara lengkap!



4.       Jelaskan mekanisme pengiriman data berdasarkan OSI layer!




Jawab:

1.   Wireshark adalah salah satu dari sekian banyak tool Network Analyzer yang banyak digunakan oleh Network administrator untuk menganalisa kinerja jaringannya.

Wireshark digunakan untuk troubleshooting jaringan, analisis, perangkat lunak dan pengembangan protokol komunikasi, dan pendidikan.

Setelah instalasi tampilan pertama yang akan mucul sebagai berikut :














Klik Interface List,maka akan muncul jendela seperti berikut :







Klik Start pada deskripsi yang memiliki paket setelah itu maka akan ditampilkan layar scrolling yang berisikan paket-paket yang kita tangkap :


Untuk selesai menangkap paket, maka tinggal klik pada tombol yang ditunjukkan oleh panah berikut :







Lebih lanjut tentang Capture Options pada Interface :















Limit Each Packet To

Pada jaringan yang sibuk, terkadang kita hanya ingin menangkap sebagian dari paket saja ( tidak full packet ), misalnya hanya 64 bytes pertama saja. Biasanya hal tersebut dilakukan agar file capture tidak menjadi besar, namun sudah cukup informatif karena TCP/IP header sudah terlihat di 64 bytes paket. Untuk melakukan hal tersebut, pakailah option “Limit each packet to” dan isi dengan 64 bytes.









Capture File(s)

Pada saat kita akan melakukan capture packet penuh, maka size hard disk yang dibutuhkan tentunya akan sangat besar. Secara teori, apabila kita pada kecepatan 100Mbps ( atau 12.5MByte/s ), maka untuk utilisasi jaringan 50% saja, maka tiap detik akan merekam 6.25MByte. Maka untuk 1 menit butuh lebih dari 300 Mbytes. Melakukan analisa paket dengan file size yang sangat besar akan sangat sulit karena butuh processor dan memory yang cepat. Oleh karena nya, Wireshark menyediakan sarana-sarana untuk meng-split file hasil capture secara otomatis, pada bagian Capture File(s) berikut. Klik dahulu “Use multiple files” untuk mengaktifkan opsi-opsi berikutnya :

Apabila kita ingin memisah setiap hasil tangkapan berdasarkan ukuran, maka kita klik “Next file every” dan diisi ukuran file, misalnya 20Megabytes. Apabila ingin memisah berdasar waktu, kita klik “Next file every” dan isikan berapa menit. Apabila kedua opsi ini dipilih bersamaan, maka capture file akan terpisah dengan kondisi yang terpenuhi dahulu ( bisa berdasarkan file size, atau berdasarkan waktu ).
“Ring buffer” menyediakan opsi yang menarik. Ring buffer menggunakan system First In First Out. Apabila kita isi dengan 5 files, maka akan tercipta ‘hanya’ 5 capture file saja. Jika capture file ke-6 terbentuk, maka capture file yang paling kuno ( nomor 1 ) akan dihapus. Dengan demikian, kita bisa memperhitungkan berapa maksimum size hard disk yang akan kita pakai dalam mengcapture. Sebagai contoh, apabila kita menyisakan 1 Gigabyte hard disk, kita bisa mengsplit dengan 20 file dengan ukuran maksimum 50 Mega Byte menggunakan “Next file every 50MByte” dan “Ring buffer 20 files”. Stop Capture, juga bisa dipilih untuk memberhentikan capture, dengan kondisi-kondisi seperti terlihat pada option yang ada. Setelah kita selesai menangkap paket, semua urutan paket dapat dibuka langsung dengan File>File Set>List Files :



2.       Crimping itu adalah proses pemasangan kabel UTP ke konektor RJ-45.
Straight :
Penggunaan kabel straight :
menghubungkan komputer ke port biasa di Switch.
menghubungkan komputer ke port LAN modem cable/DSL.
menghubungkan port WAN router ke port LAN modem cable/DSL.
menghubungkan port LAN router ke port uplink di Switch.
menghubungkan 2 HUB/Switch dengan salah satu HUB/Switch menggunakan port uplink dan yang lainnya menggunakan port biasa

Prosedur pemasangan untuk jenis Straight :
    1. Kupas bagian ujung kabel UTP, kira-kira 2 cm
    2. Buka pilinan kedua ujung kabel, luruskan dan urutankan kabel sesuai standar
      T-568B(kedua ujung kabel sama)
    3. Setelah urutannya sesuai standar, potong dan ratakan ujung kabel,
    4. Masukan kabel  yang sudah lurus dan sejajar tersebut ke dalam konektor RJ45, dan pastikan semua kabel posisinya sudah benar
    5. Lakukan crimping menggunakan crimping tools, tekan crimping tool dan pastikan semua pin (kuningan) pada  konektor RJ45 sudah “menggigit” tiap-tiap kabel
    6. Setelah selesai pada ujung yang satu, lakukan lagi pada ujung yang lain
7.       Langkah terakhir adalah menge-cek kabel yang sudah kita buat tadi dengan menggunakan LAN tester, caranya masukan masing-masing ujung kabel (konektor RJ45) ke masing2 port yang tersedia pada LAN tester, nyalakan dan pastikan semua lampu LED menyala sesuai dengan urutan kabel yang kita buat.

















Cross :
Penggunaan kabel crossover :
menghubungkan 2 buah komputer secara langsung
menghubungkan 2 buah HUB/Switch menggunakan port biasa diantara kedua HUB/Switch.
menghubungkan komputer ke port uplink Switch
menghubungkan port LAN router ke port biasa di HUB/Switch

Prosedur pemasangan untuk jenis Cross Over :
1.      Kupas bagian ujung kabel UTP, kira-kira 2 cm
2.      Buka pilinan kedua ujung kabel, luruskan dan urutankan kabel sesuai standar T-568B(untuk ujung kabel 1), dan T-568A(untuk ujung kabel 2)
3.      Setelah urutannya sesuai standar, potong dan ratakan ujung kabel,
4.      Masukan kabel  yang sudah lurus dan sejajar tersebut ke dalam konektor RJ45, dan pastikan semua kabel posisinya sudah benar
5.      Lakukan crimping menggunakan crimping tools, tekan crimping tool dan pastikan semua pin (kuningan) pada  konektor RJ45 sudah “menggigit” tiap-tiap kabel
6.      Setelah selesai pada ujung yang satu, lakukan lagi pada ujung yang lain
7.      Langkah terakhir adalah menge-cek kabel yang sudah kita buat tadi dengan menggunakan LAN tester, caranya masukan masing-masing ujung kabel (konektor RJ45) ke masing2 port yang tersedia pada LAN tester, nyalakan dan pastikan semua lampu LED menyala sesuai dengan urutan kabel yang kita buat.



3.       
Display Filter      : Sintaks untuk filter paket yang akan ditampilkan
Daftar Paket       : Menampilkan paket yang berhasil ditangkap
Detail Paket        : Menampilkan data yang berbeda2 antar paketnya
Detail Heksa       : Menampilkan data paket dalam Heksa

Pada kolom :
-          Time              : Menampilkan waktu saat paket tersebut ditangkap
-          Source          : Menampilkan IP sumber dari paket data tersebut
-          Destination : Menampilkan IP tujuan dari paket data tersebut
-          Protocol       : Menampilkan protocol apa yang dipakai sebuah paket data
-          Info                : Menampilkan informasi mendetail tentang paket data tersebut







4.       1. Pada Layer Physical, data akan dikirim dalam bentuk sinyal analog/ berupa gelombang dan diterjemahkan sebagai biner ( 0 atau 1 ).

2. Dan pada Layer Datalink terjadi segmentasi dan re-assembling data yang masuk dari layer physical serta penambahan Header pada data. Didalam layer datalink ini data disebut Frame. disini sudah mulai ditentukan data akan masuk pada hardware seperti apa, MAC address dsb.

3. di Layer Network data akan diberikan alamat IP, menentukan kemana data akan ditransmisikan, dan menjaga trafik pada jaringan. data pada layer ini disebut Packet.

4. Di Layer Transport data dipecah-pecah menjadi beberapa bagian tergantung pada hardware tujuan.

5. Session layer berguna untuk menjaga, memelihara dan mengatur koneksi.

6. Presentation layer berguna untuk mengkonversi data, seperti ASCII untuk dokumen, gif untuk gambar dsb. Layer ini membentuk kode konversi, translasi data, enkripsi dan konversi.

7. Aplication layer
Menyediakan jasa untuk aplikasi pengguna. Layer ini bertanggungjawab atas pertukaran informasi antara program komputer, seperti program e-mail, dan service lain yang jalan di jaringan, seperti server printer atau aplikasi komputer lainnya.

             

Sumber:
















Sesilab 2
1.        Jelaskan mekanisme pengiriman data melalui TCP/IP layer
Informasi TCP/IP ditransfer dalam sebuah urutan "datagram". Satu pesan ditransfer
sebagai rentetan datagram yang disusun kembali menjadi pesan awal pada sisi
penerima.
Layer Protocol TCP/IP
• Application Layer : Protokol "Application" terdiri dari file transfer, e-mail, dan remote login. Management jaringan (Network management) juga berada di layer "Application".
• Transport Layer : memecah dan Mengumpulkan kembali (reassemble) beberapa aplikasi "upper-layer" ke dalam aliran data (transport-layer data stream) yang sama.

• Internet Layer : Beberapa protocol beroperasi pada layer internet TCP/IP, seperti IP yang memberikan sambungan tanpa koneksi, ICMP yang mampu memberikan kendali dan kemampuan mengirimkan pesan, ARP untuk menentukan alamat layer data link sebagai alamat IP yg dikenali, dan RARP yang menentukan alamat network pada saat alamat layer data link dikenali.

2.        Jelaskan tentang soket dan fungsinya dalam komunikasi antar program dalam jaringan
Socket merupakan mekanisme komunikasi yang memungkinkan terjadinya pertukaran data antar program atau proses baik pada satu mesin atau antar mesin. Fasilitas socket tersedia pada sistem operasi yang berkomunikasi dengan protocol TCP/IP.
a) binding socket, fungsi ini digunakan untuk mengikat socket pada sebuah alamat network.Untuk mengaplikasikan fungsi binding socket, misal terdapat socket golongan AF_INET dengan jenis SOCK_STREAM yang dibuka dan menghasilkan nilai deskriptor file yang disimpan pada variabel sockdf.

b) listening packet, fungsi ini digunakan untuk nmenyiapkan socket untuk menerima koneksi yang masuk.Penggunaan fungsi listening packet digunakan untuk membuat socket server yang telah disiapkan menunggu koneksi yang datang.

c) accepting connection, fungsi ini digunakan untuk menerima koneksi yang masuk ke server Fungsi accepting connection akan memblok proses sampai sebuah koneksi client terhubung dengan server. Kejadian ini akan membangunkan proses dari tidurnya. Fungsi accept() akan mengembalikan nilai berupa deskriptor file baru. Seluruh komunikasi pada koneksi ini harus dilakukan dengan deskriptor file baru ini.

d) receiving packet, fungsi ini digunakan untuk melakukan komunikasi, yaitu untuk menerima data.Fungsi receiving packet akan memblok proses hingga muncul sesuatu yang untuk dibaca pada socket dengan menggunakan variabel buffer. Fungsi read() menghasilkan jumlah karakter yang dibaca yang disimpan sementara dalam variabel n. Data hasil pembacaan yang disimpan dalam variabel buffer akan ditampilkan pada standar I/O demgam perintah printf().

e) sending packet, fungsi ini digunakan untuk melakukan komunikasi, yaitu untuk mengirim data.Fungsi sending packet ini mengirim data antar client dan server. Apabila client melakukan eksekusi dengan fungsi ini, maka server akan mengakomodasi dengan fungsi read() untuk membaca data. Sebaliknya dengan server ke client, biasanya data yang dikirim berupa data identifikasi kapal.

3.        Buatlah program client-server menggunakan soket dalam bahasa JAVA. Karakterisitik program :
1. Client mengirim kalimat “Hello”
2. Server membalas dengan kalimat “Hello World”

Server:
import java.net.*;
import java.io.*;

public class Server {
    public static void main(String[] args) throws IOException {

        ServerSocket serverSocket = null;
        try {
            serverSocket = new ServerSocket(4444);
        } catch (IOException e) {
            System.err.println("Could not listen on port: 4444.");
            System.exit(1);
        }

        Socket clientSocket = null;
        try {
            clientSocket = serverSocket.accept();
        } catch (IOException e) {
            System.err.println("Accept failed.");
            System.exit(1);
        }
        PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
        BufferedReader in = new BufferedReader(
                                         new InputStreamReader(
                                         clientSocket.getInputStream()));
        String inputLine, outputLine;
       
        while ((inputLine = in.readLine()) != null) {
             if (inputLine.equalsIgnoreCase("Hello")) {
                outputLine = "Hello World";
            } else {
                outputLine = inputLine;
            }
             out.println(outputLine);
                break;
        }
        out.close();
        in.close();
        clientSocket.close();
        serverSocket.close();
    }
}

Client:
package knockknockclient;

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

public class Client {
    public static void main(String[] args) throws IOException {

        Socket kkSocket = null;
        PrintWriter out = null;
        BufferedReader in = null;

        try {
            kkSocket = new Socket("Hostname", 4444);
            out = new PrintWriter(kkSocket.getOutputStream(), true);
            in = new BufferedReader(new InputStreamReader(kkSocket.getInputStream()));
        } catch (UnknownHostException e) {
            System.err.println("Don't know about Hostname");
            System.exit(1);
        } catch (IOException e) {
            System.err.println("Couldn't get I/O for the connection to: taranis.");
            System.exit(1);
        }

        BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
        String fromServer;
        String fromUser;

            fromUser = stdIn.readLine();
    
                System.out.println("Client: " + fromUser);
                out.println(fromUser);
                fromServer = in.readLine();
                System.out.println("Server: " + fromServer);
        out.close();
        in.close();
        stdIn.close();
        kkSocket.close();
    }
}



Praktikum:
Client-Server Socket
Client:
import java.io.*;
import java.net.*;

public class Client {
    public static void main(String[] args) throws IOException {

        Socket kkSocket = null;
        PrintWriter out = null;
        BufferedReader in = null;

        try {
            kkSocket = new Socket("ISWAHYUDI-PC", 4444);
            out = new PrintWriter(kkSocket.getOutputStream(), true);
            in = new BufferedReader(new InputStreamReader(kkSocket.getInputStream()));
        } catch (UnknownHostException e) {
            System.err.println("Don't know about host: ISWAHYUDI-PC");
            System.exit(1);
        } catch (IOException e) {
            System.err.println("Couldn't get I/O for the connection to: ISWAHYUDI-PC");
            System.exit(1);
        }

        BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
        String fromServer;
        String fromUser;
       
        while(true)
        {
            fromUser = stdIn.readLine();
            out.println(fromUser);
                    if(fromUser.equals("2"))
                break;
            System.out.println("Client: " + fromUser);
            fromServer=in.readLine();
            System.out.println("Server\n" + fromServer);
            fromServer=in.readLine();
            System.out.println(fromServer);
            fromServer=in.readLine();
            System.out.println(fromServer);
        }
        fromServer=in.readLine();
        System.out.println(fromServer);
        out.close();
        in.close();
        stdIn.close();
        kkSocket.close();
    }
}
SERVER:
import java.net.*;
import java.io.*;

public class Server {
    public static void main(String[] args) throws IOException {

        ServerSocket serverSocket = null;
        try {
            serverSocket = new ServerSocket(4444);
        } catch (IOException e) {
            System.err.println("Could not listen on port: 4444.");
            System.exit(1);
        }

     while(true)
     {
        Socket clientSocket = null;
        try {
            clientSocket = serverSocket.accept();
        } catch (IOException e) {
            System.err.println("Accept failed.");
            System.exit(1);
        }

        PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
        BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
       
        String inputLine, outputLine;
       
        while ((inputLine = in.readLine()) != null) {
            if(inputLine.equals("2"))
            {
                out.println("Memutuskan segala hubungan kita");
                break;
            }
            else{
             out.println("Menu:");
             out.println("1.Lanjut");
             out.println("2.Mutung");
            }
        }
       
        out.close();
        in.close();
        clientSocket.close();
     }
    }
}

Read More ->>

Iswahyudi

ingin download materi

Mengenai Saya

Nama : Iswahyudi NRP : 5111100006 Asal : Kediri Kuliah di ITS jurusan Teknik Informatika
Powered By Blogger
Diberdayakan oleh Blogger.