Socket adalah teknologi dasar
untuk
pemrograman perangkat lunak sebagai sarana berkomunikasi pada TCP / IP
jaringan. Socket memberikan titik akhir komunikasi dua arah untuk
mengirim dan menerima data
dengan socket yang lain. Koneksi Socket biasanya berjalan antara dua
komputer
yang berbeda pada LAN atau di Internet, tetapi mereka juga dapat
digunakan
untuk komunikasi interprocess pada satu komputer.
Fungsi Socket, socket programming
terdiri dari 2 jenis :
1. Connection-based
sockets, sebagai komunikasi antara client-server.
2. Connectionless sockets, komunikasi peer to peer; setiap proses adalah
sama/simetris.
Contoh Client Server Java Socket Programming yang menggunakan aplikasi netbeans :
===========
Server
===========
package server;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Server {
public static void main(String[] args) throws IOException {
// TODO code application logic here
int port = 1234;
ServerSocket server = new ServerSocket (port);
while(true){
try
{
Socket socket = server.accept();
ObjectInputStream inp = new ObjectInputStream(socket.getInputStream());
String message = (String) inp.readObject();
ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
System.out.println(message);
if(message.equals("user")||message.equals("admin"))
{
out.writeObject("Selamat Datang " + message);
}
else
{
out.writeObject("Maaf anda tidak memiliki hak akses");
}
}
catch(ClassNotFoundException ex)
{
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
catch(IOException ex)
{
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
}
===========
package server;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Server {
public static void main(String[] args) throws IOException {
// TODO code application logic here
int port = 1234;
ServerSocket server = new ServerSocket (port);
while(true){
try
{
Socket socket = server.accept();
ObjectInputStream inp = new ObjectInputStream(socket.getInputStream());
String message = (String) inp.readObject();
ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
System.out.println(message);
if(message.equals("user")||message.equals("admin"))
{
out.writeObject("Selamat Datang " + message);
}
else
{
out.writeObject("Maaf anda tidak memiliki hak akses");
}
}
catch(ClassNotFoundException ex)
{
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
catch(IOException ex)
{
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
}
==========
Client
==========
package client;
import com.sun.corba.se.spi.activation.Server;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Client {
public static void main(String[] args) throws IOException {
// TODO code application logic here
try
{
InetAddress host = InetAddress.getLocalHost();
Socket socket = new Socket(host.getHostName(), 1234);
System.out.println("Apa username mu?");
ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
Scanner scan = new Scanner(System.in);
String pesan = scan.next();
out.writeObject(pesan);
ObjectInputStream inp = new ObjectInputStream(socket.getInputStream());
String message = (String) inp.readObject();
System.out.println(message);
out.close();
inp.close();
socket.close();
}
catch(ClassNotFoundException ex)
{
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
catch(IOException ex)
{
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
}
}




