Whois, Siapa itu? Begitulah bila diartikan secara terminologi. Whois merupakan protocol query dan response yang secara luas digunakan untuk melakukan query database yang menyimpan pengguna yang terdaftar atau penyedia sumber daya Internet seperti domain name, blok IP address, atau sistem otomatis dan kegunaan yang lainnya. Protocol ini menyimpan dan mengirim isi database dalam format yang dapat dibaca oleh manusia. Whois juga dapat digunakan untuk listing Internet record yang memberikan informasi pemilik domain dan bagaimana untuk menghubungi mereka. Internet Corporation for Assigned Numbers (ICANN) membuat aturan registrasi dan kepemilikan nama domain. Sebuah record whois mengandung semua informasi terkait orang, kelompok, atau perusahaan yang mendaftarkan nama domain tertentu. Umumnya informasi yang diberikan adalah nama dan informasi kontak.
Untuk menggunakan protocol whois kita dapat mengunjungi website seperti http://whois.net/ atau menggunakan aplikasi tertentu yang dapat diinstall di komputer.
Referensi :
http://whois.net/
http://en.wikipedia.org/wiki/Whois
http://www.domaintools.com/learn/what-is-whois-information-and-why-is-it-valuable-419/
Selasa, 13 Mei 2014
NSLOOKUP
Nslookup, apa itu?
NSLOOKUP adalah singkatan dari "Name Server Lookup". NSLOOKUP merupakan alat yang digunakan untuk memperoleh informasi mengenai server internet dalam hal ini adalah DNS server. NSLOOKUP adalah sebuah alat dalam jaringan berbasis command-line yang tersedia pada kebanyakan sistem operasi komputer untuk mendapatkan domain name atau pemetaan IP address atau untuk menjalankan DNS record spesific lainnya.
Berikut ini cara menggunakan nslookup
Buka command promt kemudian ketik
nslookup
Untuk melihat informasi suatu domain, masukkan nama domain kemudian enter
Sekian semoga bermanfaat
Referensi :
http://en.wikipedia.org/wiki/Nslookup
http://techno-bit.blogspot.com/2009/10/nslookup.html
http://compnetworking.about.com/od/dns_domainnamesystem/g/what-is-nslookup.htm
IPTraf
IPTraf merupakan utilitas untuk mengelola IP Jaringan. IPTraf menggunakan basis console pada linux. IPTraf mengumpulkan data seperti paket pada TCP, indikator aktivitas dan statistik, pemutusan TCP/UDP Traffic dan perhitungan byte dan paket pada LAN. IPTraf memiliki fitur yang meliputi IP Traffic monitor yang menampilkan informasi TCP Flag, perhitungan byte dan paket, detil ICMP, tipe paket OSPF, dan peringatan paket IP yang berlebihan. IPTraf juga dapat digunakan untuk mengawasi beban pada sebuah IP dalam jaringan, layanan jaringan yang sering digunakan, koneksi TCP yang akan datang dan lainnya. IPtraf berbasiskan sebuah software dan secara default dijalankan di linux. Instalasi dapat dilakukan dengan mengunduh file installer di http://iptraf.seul.org/.
Berikut ini tampilan IPtraf.
Berikut ini tampilan IPtraf.
sumber : http://iptraf.seul.org/2.2/manual.html#intro
Referensi :
http://iptraf.seul.org/2.2/manual.html#intro
http://rpmfind.net/linux/rpm2html/search.php?query=iptraf
ICMP
ICMP merupakan kependekan dari Internet Control Message Protocol. ICMP sebuah protocol pengendalian pesan dan pemberitahuan error antara host server dengan gateway internet. ICMP menggunakan datagram IP namun pesan diolah menggunakan software IP dan tidak tampak langsung pada user. ICMP dapat digunakan ketika terjadi masalah seperti end system tidak merespon, IP tidak tercapai (nor reachable), node overload. Berikut ini format enkapsulasi ICMP pada ethernet LAN :
Referensi :
http://searchnetworking.techtarget.com/definition/ICMP
http://www.erg.abdn.ac.uk/~gorry/eg3561/inet-pages/icmp.html
http://technet.microsoft.com/en-us/library/cc737478(v=ws.10).aspx
http://www.erg.abdn.ac.uk/~gorry/eg3561/inet-pages/icmp.html
Aplikasi PING menggunakan ICMP dan dapat digunakan untuk mendeteksi apakah end-to-end path internal berjalan dengan baik. Untuk melakukan ping, buka terminal kemudian ketikkan
ping instruksi
Dibawah ini tampilannya dilansir dari http://technet.microsoft.com/en-us/library/cc737478(v=ws.10).aspx
C:\>ping -n 2 -l 1450 131.107.8.1 Pinging 131.107.8.1 with 1450 bytes of data: Reply from 131.107.8.1: bytes=1450 time<10ms TTL=32 Reply from 131.107.8.1: bytes=1450 time<10ms TTL=32 Ping statistics for 131.107.8.1: Packets: Sent = 2, Received = 2, Lost = 0 (0% loss), Approximate roundtrip times in milliseconds: Minimum = 0ms, Maximum = 10ms, Average = 2ms
Referensi :
http://searchnetworking.techtarget.com/definition/ICMP
http://www.erg.abdn.ac.uk/~gorry/eg3561/inet-pages/icmp.html
http://technet.microsoft.com/en-us/library/cc737478(v=ws.10).aspx
TRACEROUTE
Traceroute? Apa itu Traceroute?
Ketika kita ingin membuka sebuah website kita akan memasukkan URL web tersebut dalam browser. Setelah kita memasukkan URL, web browser akan mengirimkan informasi URL tersebut ke jaringan komputer. Untuk mendapatkan data dari web tersebut kita harus dapat mencapai web tersebut. Perjalanan menuju ke tempat tersebut tidak berlangsung dalam sekali jalan. Terdapat beberapa lompatan yang diperlukan untuk mencapai web tersebut.
Traceroute merupakan alat untuk menampilkan lompatan - lompatan atau rute yang dipilih dalam pengiriman paket data. Traceroute akan menampilkan informasi rute yang dilewati serta delay yang terjadi. Traceroute dapat dilakukan di berbagai sistem operasi seperti Linux, Windows, dan MAC. Berikut ini contoh Traceroute pada Windows.
Buka command prompt kemudian masukkan perintah
tracert url_website_yang_dituju
contoh : tracert www.wikipedia.com
Referensi :
http://whatismyipaddress.com/traceroute
http://en.wikipedia.org/wiki/Traceroute#Origins
http://whatis.techtarget.com/definition/traceroute
Ketika kita ingin membuka sebuah website kita akan memasukkan URL web tersebut dalam browser. Setelah kita memasukkan URL, web browser akan mengirimkan informasi URL tersebut ke jaringan komputer. Untuk mendapatkan data dari web tersebut kita harus dapat mencapai web tersebut. Perjalanan menuju ke tempat tersebut tidak berlangsung dalam sekali jalan. Terdapat beberapa lompatan yang diperlukan untuk mencapai web tersebut.
Traceroute merupakan alat untuk menampilkan lompatan - lompatan atau rute yang dipilih dalam pengiriman paket data. Traceroute akan menampilkan informasi rute yang dilewati serta delay yang terjadi. Traceroute dapat dilakukan di berbagai sistem operasi seperti Linux, Windows, dan MAC. Berikut ini contoh Traceroute pada Windows.
Buka command prompt kemudian masukkan perintah
tracert url_website_yang_dituju
contoh : tracert www.wikipedia.com
Referensi :
http://whatismyipaddress.com/traceroute
http://en.wikipedia.org/wiki/Traceroute#Origins
http://whatis.techtarget.com/definition/traceroute
Kalkulasi IP menggunakan IPCalc
IP address merupakan nomor yang digunakan untuk mengidentifikasi setiap device yang terhubung dengan jaringan. IP address unik untuk setiap device. IP address biasanya berada dalam subnet tertentu dalam jaringan. Subnet adalah kependekan dari subnetwork. Subnet merupakan sub jaringan yang terdapat dalam jaringan utama yang tersebar berdasarkan letak geografis dalam jaringan.
Sebuah IP address mengandung tiga bagian yaitu nomor jaringan, nomor subnet, dan nomor mesin/device.
Buka website http://jodies.de/ipcalc
Masukan IP address dan netmask
Kemudian pilih calculate
Berikut ini hasilnya
Sebuah IP address mengandung tiga bagian yaitu nomor jaringan, nomor subnet, dan nomor mesin/device.
Buka website http://jodies.de/ipcalc
Masukan IP address dan netmask
Kemudian pilih calculate
Berikut ini hasilnya
Hasil yang ditampilkan berupa string bit dari IP address, subnet, wildcard, serta range IP.
referensi :
http://searchnetworking.techtarget.com/definition/subnet
Rabu, 19 Maret 2014
Deep Packet Inspection (DPI)
Ketika kita mengirimkan barang ke orang lain, kita pasti memberikan alamat tujuan pengiriman. Kemudian kita memberikan barang tersebut pada kurir. Kurir mengirimkan barang tersebut ke alamat tujuan. Saat barang tiba di tempat tujuan, penerima akan mengecek apakah barang tersebut sesuai dengan yang kita harapkan. Jika barang tersebut tidak sesuai, maka barang tersebut akan ditolak atau dikembalikan ke kurir.
Deep Packet Inspection memiliki prinsip yang sama seperti ilustrasi di atas. Deep Packet Inspection merupakan bentuk filtering paket data dalam jaringan yang mengecek suatu paket data ketika memasuki daerah inspeksi, mencari ketidakcocokan atau virus, malware, spam, menentukan apakah paket tersebut boleh lewat atau diarahkan ke rute lain. DPI juga dapat digunakan untuk mengumpulkan data statistik suatu informasi.
DPI menggabungkan fungsionalitas dari IDS (Intrusion Detection System) dan IPS (Intrusion Prevention System). IDS digunakan untuk mendeteksi intruder sedangkan IPS digunakan untuk mencegah intruder. DPI memiliki kelebihan dari stateful firewall. Perangkat yang menggunakan DPI memiliki kemampuan untuk mengawasi lebih dari layer 2 atau 3 dari model OSI Layer. DPI biasanya digunakan oleh suatu enterprise. Penggunaan DPI dalam enterprise dapat mengatur otorisasi pengguna yang berasal dari luar enterprise sehingga data enterprise lebih terproteksi.
DPI memiliki tiga keterbatasan. DPI dapat menyebabkan kerentanan sekaligus proteksi. DPI memiliki kelebihan untuk mengatasi buffer overflow serta virus. Namun DPI juga menjadi perantara untuk melakukan hal tersebut. Kedua, DPI menambah kompleksitas dari firewall yang sudah ada. Ketiga, DPI menambah beban dalam pemprosesan. Prosesor perlu memberikan tenaga lebih untuk menjalankan DPI.
DPI memiliki tiga keterbatasan. DPI dapat menyebabkan kerentanan sekaligus proteksi. DPI memiliki kelebihan untuk mengatasi buffer overflow serta virus. Namun DPI juga menjadi perantara untuk melakukan hal tersebut. Kedua, DPI menambah kompleksitas dari firewall yang sudah ada. Ketiga, DPI menambah beban dalam pemprosesan. Prosesor perlu memberikan tenaga lebih untuk menjalankan DPI.
http://en.wikipedia.org/wiki/Deep_packet_inspection
http://www.wired.co.uk/news/archive/2012-04/27/how-deep-packet-inspection-works
http://searchnetworking.techtarget.com/definition/deep-packet-inspection-DPI
http://searchnetworking.techtarget.com/definition/deep-packet-inspection-DPI
Selasa, 18 Februari 2014
Contoh Socket Programming bahasa Java : Mendapatkan Port Number
Berikut ini step - by - step bagaimana mendapatkan port number ketika mengakses suatu website menggunakan bahasa Java. Pertama siapkan terlebih dahulu text editor untuk membuat kode
Ketikkan kode dibawah ini, dan simpan dengan nama Ports.java
Ketikkan kode dibawah ini, dan simpan dengan nama Ports.java
import java.net.*;import java.io.*;public class Ports{public static void main ( String[] args ) throws IOException{String hostname = args[0];Socket s = null;try{// this is to see if host exists:InetAddress ipaddress = InetAddress.getByName(hostname);// int p = 21; // ftp// int p = 22; // ssh / sftp// int p = 23; // telnet// int p = 25; // smtpint p = 80; // http// int p = 110; // pop3// int p = 143; // imaptry{s = new Socket(hostname, p);System.out.println("A server is running on port " + p +".");s.close();}catch (IOException e){System.out.println("No server on port " + p + ".");}}catch ( UnknownHostException e ){System.out.println("Could not find host: " + hostname);}if (s != null){try{s.close();}catch ( IOException ioEx ){}}}}
Setelah itu buka terminal, ubah direktori ke lokasi file Ports.java
Compile file Ports.java menggunakan perintah
javac Ports.java
Jalankan Program dengan perintah
java Ports url_yang_diinginkan
Jika url berada di Internet, jangan lupa sambungkan koneksi internet terlebih dulu
java Ports www.google.com
Port number dari www.google.com yaitu 80 muncul di jendela terminal, selamat anda berhasil :D
Semoga bermanfaat :D
sumber : Modul Praktikum Jaringan Komputer, Program Studi Sistem dan Teknologi Informasi, STEI ITB
Contoh Socket Programming bahasa C : Chat sederhana client - server
Sesuai dengan judulnya, kita akan membuat sebuah program chat antara client dengan server menggunakan bahasa C. Siapkan text editor untuk membuat kode.
Pertama, kita akan membuat server berikut ini kode yang perlu diketikkan
Setelah itu kita membuat client dengan kode berikut :
sumber : http://mcalabprogram.blogspot.com/2012/01/tcp-sockets-chat-applicationserver.html
Pertama, kita akan membuat server berikut ini kode yang perlu diketikkan
#include<stdio.h>#include<netinet/in.h>#include<sys/types.h>#include<sys/socket.h>#include<netdb.h>#include<stdlib.h>#include<string.h>#define MAX 80#define PORT 43454#define SA struct sockaddrvoid func(int sockfd){char buff[MAX];int n;for(;;){bzero(buff,MAX);read(sockfd,buff,sizeof(buff));printf("From client: %s\t To client : ",buff);bzero(buff,MAX);n=0;while((buff[n++]=getchar())!='\n');write(sockfd,buff,sizeof(buff));if(strncmp("exit",buff,4)==0){printf("Server Exit...\n");break;}}}int main(){int sockfd,connfd,len;struct sockaddr_in servaddr,cli;sockfd=socket(AF_INET,SOCK_STREAM,0);if(sockfd==-1){printf("socket creation failed...\n");exit(0);}elseprintf("Socket successfully created..\n");bzero(&servaddr,sizeof(servaddr));servaddr.sin_family=AF_INET;servaddr.sin_addr.s_addr=htonl(INADDR_ANY);servaddr.sin_port=htons(PORT);if((bind(sockfd,(SA*)&servaddr, sizeof(servaddr)))!=0){printf("socket bind failed...\n");exit(0);}elseprintf("Socket successfully binded..\n");if((listen(sockfd,5))!=0){printf("Listen failed...\n");exit(0);}elseprintf("Server listening..\n");len=sizeof(cli);connfd=accept(sockfd,(SA *)&cli,&len);if(connfd<0){printf("server acccept failed...\n");exit(0);}elseprintf("server acccept the client...\n");func(connfd);close(sockfd);}
source : http://mcalabprogram.blogspot.com/2012/01/tcp-sockets-chat-applicationserver.html
Setelah itu kita membuat client dengan kode berikut :
#include<stdio.h>#include<netinet/in.h>#include<sys/types.h>#include<sys/socket.h>#include<netdb.h>#include<string.h>#include<stdlib.h>#define MAX 80#define PORT 43454#define SA struct sockaddrvoid func(int sockfd){char buff[MAX];int n;for(;;){bzero(buff,sizeof(buff));printf("Enter the string : ");n=0;while((buff[n++]=getchar())!='\n');write(sockfd,buff,sizeof(buff));bzero(buff,sizeof(buff));read(sockfd,buff,sizeof(buff));printf("From Server : %s",buff);if((strncmp(buff,"exit",4))==0){printf("Client Exit...\n");break;}}}int main(){int sockfd,connfd;struct sockaddr_in servaddr,cli;sockfd=socket(AF_INET,SOCK_STREAM,0);if(sockfd==-1){printf("socket creation failed...\n");exit(0);}elseprintf("Socket successfully created..\n");bzero(&servaddr,sizeof(servaddr));servaddr.sin_family=AF_INET;servaddr.sin_addr.s_addr=inet_addr("127.0.0.1");servaddr.sin_port=htons(PORT);if(connect(sockfd,(SA *)&servaddr,sizeof(servaddr))!=0){printf("connection with the server failed...\n");exit(0);}elseprintf("connected to the server..\n");func(sockfd);close(sockfd);}
source : http://mcalabprogram.blogspot.com/2012/01/tcp-sockets-chat-applicationserver.html
Setelah selesai membuat file kode bahasa C, buka terminal, ubah direktori ke lokasi file .c, kemudian compile dan run file .c, gunakan perintah berikut :
gcc -o nama_aplikasi nama_file.c
./nama_aplikasi
Setelah server dijalankan, buka terminal baru, ubah direktori seperti langkah sebelumnya, kemudian compile dan run dengan cara yang sama seperti langkah sebelumnya
Sekarang telah muncul tempat untuk mengisi pesan di kedua jendela terminal
Sekarang kita coba menulis pesan "halo :D" pada client, coba perhatikan yang muncul di server
Pesan dari client muncul di jendela server, kemudian kita coba mengirim pesan balik "halo juga :D"
Pesan dari server muncul di jendela client, sekarang kita bisa bercakap - cakap sendiri jika sedang sepi hahaha, semoga bermanfaat :Dsumber : http://mcalabprogram.blogspot.com/2012/01/tcp-sockets-chat-applicationserver.html
Contoh Socket Programming bahasa Java : Mendapatkan tanggal Server
Berikut ini contoh pemrograman socket dalam bahasa Java. Kali ini kita menggunakan jenis client - server.
Sebelum memulai, siapkan text editor untuk membuat kode program.
Buka text editor, kemudian masukan kode di bawah ini untuk membuat server
Sebelum memulai, siapkan text editor untuk membuat kode program.
Buka text editor, kemudian masukan kode di bawah ini untuk membuat server
import java.net.*; import java.io.*; import java.util.*; class DateServer { publicstaticvoid main(String args[]) throws Exception { ServerSocket s=new ServerSocket(5217); while(true) { System.out.println("Waiting For Connection ..."); Socket soc=s.accept(); DataOutputStream out=new DataOutputStream(soc.getOutputStream()); out.writeBytes("Server Date" + (new Date()).toString() + "\n"); out.close(); soc.close(); } } }
source : http://www.dailyfreecode.com/code/date-server-client-1249.aspx
Kemudian ketikan kode berikut untuk membuat client
import java.io.*; import java.net.*; class DateClient { publicstaticvoid main(String args[]) throws Exception { Socket soc=new Socket(InetAddress.getLocalHost(),5217); BufferedReader in=new BufferedReader( new InputStreamReader( soc.getInputStream() ) ); System.out.println(in.readLine()); } }
source : http://www.dailyfreecode.com/code/date-server-client-1249.aspx
Setelah itu, buka jendela terminal, ubah direktori ke tempat dimana file DateServer.java dan DateClient.java berada
Kemudian, compile file DateServer.java menggunakan perintah
javac DateServer.java
setelah itu masukan perintah
java DateServer
Buka jendela terminal baru, ubah direktori seperti langkah sebelumnya, kemudian masukan perintah
javac DateClient.java
kemudian masukan perintah java DateClient
Tanggal dari server akan muncul pada jendela terminal DateClient
Selamat anda berhasil mendapatkan tanggal server :D
sumber :
http://www.dailyfreecode.com/code/date-server-client-1249.aspx
Contoh Socket Programming bahasa C : Mendapatkan tanggal dari server
Pemrograman socket dapat kita lakukan untuk mengeset kegunaan dari socket. Berikut ini contoh pemrograman socket dalam bahasa C, dengan basis client-server untuk mendapatkan tanggal dari server.
Siapkan sebuah text editor, admin kali ini menggunakan sublime text 2, kemudian ketik kode dibawah untuk membuat server :
Simpan file dengan nama server.c,
Setelah itu, kita membuat kode untuk client seperti berikut :
Siapkan sebuah text editor, admin kali ini menggunakan sublime text 2, kemudian ketik kode dibawah untuk membuat server :
#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <errno.h>#include <string.h>#include <sys/types.h>#include <time.h>int main(int argc, char *argv[]){int listenfd = 0, connfd = 0;struct sockaddr_in serv_addr;char sendBuff[1025];time_t ticks;listenfd = socket(AF_INET, SOCK_STREAM, 0);memset(&serv_addr, '0', sizeof(serv_addr));memset(sendBuff, '0', sizeof(sendBuff));serv_addr.sin_family = AF_INET;serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);serv_addr.sin_port = htons(5000);bind(listenfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr));listen(listenfd, 10);while(1){connfd = accept(listenfd, (struct sockaddr*)NULL, NULL);ticks = time(NULL);snprintf(sendBuff, sizeof(sendBuff), "%.24s\r\n", ctime(&ticks));write(connfd, sendBuff, strlen(sendBuff));close(connfd);sleep(1);}}
source : http://www.thegeekstuff.com/2011/12/c-socket-programming/
Simpan file dengan nama server.c,
Setelah itu, kita membuat kode untuk client seperti berikut :
#include <sys/socket.h>#include <sys/types.h>#include <netinet/in.h>#include <netdb.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include <errno.h>#include <arpa/inet.h>int main(int argc, char *argv[]){int sockfd = 0, n = 0;char recvBuff[1024];struct sockaddr_in serv_addr;if(argc != 2){printf("\n Usage: %s <ip of server> \n",argv[0]);return 1;}memset(recvBuff, '0',sizeof(recvBuff));if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0){printf("\n Error : Could not create socket \n");return 1;}memset(&serv_addr, '0', sizeof(serv_addr));serv_addr.sin_family = AF_INET;serv_addr.sin_port = htons(5000);if(inet_pton(AF_INET, argv[1], &serv_addr.sin_addr)<=0){printf("\n inet_pton error occured\n");return 1;}if( connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0){printf("\n Error : Connect Failed \n");return 1;}while ( (n = read(sockfd, recvBuff, sizeof(recvBuff)-1)) > 0){recvBuff[n] = 0;if(fputs(recvBuff, stdout) == EOF){printf("\n Error : Fputs error\n");}}if(n < 0){printf("\n Read error \n");}
return 0;
}
source : http://www.thegeekstuff.com/2011/12/c-socket-programming/
Simpan file dengan nama client.c
Setelah itu buka terminal, ubah direktori ke lokasi file server.c dan client.c
berikut ini contohnya,
Lakukan compile terhadap file server.c dan client.c
gunakan gcc -o nama_aplikasi nama_file
contoh : gcc -o server server.c
Setelah itu, buka jendela terminal baru. Jalankan server di satu jendela terminal terlebih dahulu, kemudian jalankan client di terminal yang lain. Pastikan direktori kedua terminal berada di tempat dimana server.c dan client.c berada.
berikut ini perintah yang diperlukan :
./server untuk server
./client 127.0.0.1 untuk client
Setelah memasukan kode pada terminal client, akan muncul tanggal yang ada pada server
Berikut gambar eksekusi kode di atas
sumber :
http://www.thegeekstuff.com/2011/12/c-socket-programming/
Contoh Socket Programming bahasa Python : Mengirim data ke server
Setelah pada pos sebelumnya kita mencoba mendapatkan tanggal server dengan bahasa C dan Java, kali ini kita akan mencobanya dalam bahasa Python. Namun kali ini kita tidak menerima data tanggal. Kita sebagai Client akan mengirimkan data pada Server.
Sesuai dengan standar prosedur, siapkan text editor terlebih dahulu.
Berbeda dengan bahasa Java dan C, kita mengeset Port number dengan sebuah file lain yang diberi nama config.py berikut ini kodenya
Ketik kode di atas, lalu simpan sebagai config.py
Kemudian ketikkan kode berikut untuk membuat server
Simpan file dengan format .py, admin menyimpan dengan nama listenserver.py
Selanjutnya ketikkan lagi kode berikut untuk membuat client.
Sesuai dengan standar prosedur, siapkan text editor terlebih dahulu.
Berbeda dengan bahasa Java dan C, kita mengeset Port number dengan sebuah file lain yang diberi nama config.py berikut ini kodenya
# config.pyPORT=2014
source : http://pythonadventures.wordpress.com/2013/07/06/a-basic-socket-client-server-example/
Ketik kode di atas, lalu simpan sebagai config.py
Kemudian ketikkan kode berikut untuk membuat server
#!/usr/bin/env python # server.py import socket import select import config as cfg import Queue from threading import Thread from time import sleep from random import randint import sys class ProcessThread(Thread): def __init__(self): super(ProcessThread, self).__init__() self.running = True self.q = Queue.Queue() def add(self, data): self.q.put(data) def stop(self): self.running = False def run(self): q = self.q while self.running: try: # block for 1 second only: value = q.get(block=True, timeout=1) process(value) except Queue.Empty: sys.stdout.write('.') sys.stdout.flush() # if not q.empty(): print "Elements left in the queue:" while not q.empty(): print q.get() t = ProcessThread() t.start() def process(value): """ Implement this. Do something useful with the received data. """ print value sleep(randint(1,9)) # emulating processing time def main(): s = socket.socket() # Create a socket object host = socket.gethostname() # Get local machine name port = cfg.PORT # Reserve a port for your service. s.bind((host, port)) # Bind to the port print "Listening on port {p}...".format(p=port) s.listen(5) # Now wait for client connection. while True: try: client, addr = s.accept() ready = select.select([client,],[], [],2) if ready[0]: data = client.recv(4096) #print data t.add(data) except KeyboardInterrupt: print print "Stop." break except socket.error, msg: print "Socket error! %s" % msg break # cleanup() def cleanup(): t.stop() t.join() ######################################################### if __name__ == "__main__": main()
source : http://pythonadventures.wordpress.com/2013/07/06/a-basic-socket-client-server-example/
Simpan file dengan format .py, admin menyimpan dengan nama listenserver.py
Selanjutnya ketikkan lagi kode berikut untuk membuat client.
#!/usr/bin/env python# client.pyimport config as cfgimport sysimport socketdef main(elems):try:for e in elems:client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)host = socket.gethostname()client.connect((host, cfg.PORT))client.send(e)client.shutdown(socket.SHUT_RDWR)client.close()except Exception as msg:print msg#########################################################if __name__ == "__main__":main(sys.argv[1:])
source : http://pythonadventures.wordpress.com/2013/07/06/a-basic-socket-client-server-example/
Setelah selesai buka terminal, ubah direktori ke tempat file server,client,dan config berada. Gunakan perintah
cd lokasi
Masukan perintah
python nama_file_server.py
nama file yang admin gunakan listenserver.py berikut ini gambarnya
Akan muncul tulisan listening dan karakter "." yang bertambah terus. Hal ini berarti server kita telah berjalan dan menunggu informasi dari client.
Buka jendela terminal baru, ubah direktori seperti langkah di atas, kemudian masukan perintah
python nama_file_client.py data1 data2 data3 ...
Nama file yang admin gunakan yaitu listenclient. Data dapat berupa huruf atau angka dengan urutan sembarang. berikut ini gambarnya
Data yang kita kirim melalui client akan dimunculkan satu per satu di jendela terminal server dengan urutan sesuai yang kita ketikkan pada jendela terminal client. Selamat anda berhasil :D
sumber : http://pythonadventures.wordpress.com/2013/07/06/a-basic-socket-client-server-example/
Langganan:
Postingan (Atom)