001
|
package tugas_server;
|
|
002
|
|
003
|
import
java.io.IOException;
|
|
004
|
// ObjectInputStream
merupakan suatu class dari java yang berguna untuk
|
005
|
// membaca
object/data (contoh string) yang diinputkan dari program lain
|
|
006
|
import
java.io.ObjectInputStream;
|
007
|
// ObjectOutputStream
merupakan suatu class dari java yang berguna untuk
|
|
008
|
// menuliskan
object/data (contoh string) untuk dibaca program lain
|
009
|
import
java.io.ObjectOutputStream;
|
|
010
|
// ServerSocket
adalah class socket khusus untuk server
|
011
|
import
java.net.ServerSocket;
|
|
012
|
// Socket adalah
class socket biasa
|
013
|
import
java.net.Socket;
|
|
014
|
import
java.util.logging.Level;
|
015
|
import
java.util.logging.Logger;
|
|
016
|
|
017
|
/**
|
|
018
|
*
|
019
|
* @author
Agung
|
|
020
|
*/
|
021
|
public class Tugas_Server
{
|
|
022
|
|
023
|
/**
|
|
024
|
*
@param args the command line arguments
|
025
|
*/
|
|
026
|
public
static void main(String[] args) {
|
027
|
try {
|
|
028
|
//
Inisialisasi Object ServerSocket dengan me-set port 5111.
|
029
|
ServerSocket
ss = new ServerSocket(5111);
|
|
030
|
//
Deklarasi socket yang nantinya akan menampung socket dari user.
|
031
|
Socket
s;
|
|
032
|
//
Deklarasi string yang untuk menampung hasil bacaan dari client.
|
033
|
String
balasan;
|
|
034
|
String
balasan2;
|
035
|
|
|
036
|
//
Inisialisasi Object Input dan Output Stream.
|
037
|
ObjectInputStream
in = null;
|
|
038
|
ObjectOutputStream
out = null;
|
039
|
|
|
040
|
//
Fungsi bawaan dari class ServerSocket yang me-return object socket
|
041
|
//
Fungsi ini menandakan bahwa program client dan server sudah terhubung
|
|
042
|
s
= ss.accept();
|
043
|
|
|
044
|
//
Mengalokasi memory baru untuk ObjectOutputStream.
|
045
|
out
= new ObjectOutputStream(s.getOutputStream());
|
|
046
|
//
Fungsi bawaan ObjectOutputStream untuk membersihkan isi memory.
|
047
|
out.flush();
|
|
048
|
|
049
|
//
Mengalokasi memory baru untuk ObjectInputStream.
|
|
050
|
in =
new ObjectInputStream(s.getInputStream());
|
051
|
|
|
052
|
balasan
= "";
|
053
|
balasan2
= "";
|
|
054
|
|
055
|
while(true)
|
|
056
|
{
|
057
|
balasan
= "";
|
|
058
|
balasan2
= "";
|
059
|
balasan
= ReadMessage(in);
|
|
060
|
//
Program akan berhenti sampai ada input "exit" dari client.
|
061
|
if(balasan.equals("exit"))
break;
|
|
062
|
else
|
063
|
{
|
|
064
|
if(balasan.equals("ini
client"))
|
065
|
{
|
|
066
|
SendMessage("ini
server, masukkan username", out);
|
067
|
balasan2
= ReadMessage(in);
|
|
068
|
if(balasan2.equals("admin"))
SendMessage("selamat datang admin", out);
|
069
|
else
|
|
070
|
{
|
071
|
if(balasan2.equals("user"))
SendMessage("selamat datang user", out);
|
072
|
else SendMessage("username
tidak diketahui", out);
|
073
|
}
|
|
074
|
}
|
075
|
else
|
|
076
|
{
|
077
|
SendMessage("perintah
tidak diketahui", out);
|
|
078
|
}
|
079
|
}
|
|
080
|
}
|
081
|
|
|
082
|
//
Menutup semua stream dan socket.
|
083
|
in.close();
|
|
084
|
out.close();
|
085
|
s.close();
|
|
086
|
ss.close();
|
087
|
}
catch (IOException ex) {
|
||
088
|
Logger.getLogger(Tugas_Server.class.getName()).log(Level.SEVERE,
null, ex);
|
||
089
|
}
|
|
090
|
}
|
091
|
|
|
092
|
//
Fungsi untuk membaca input dari client.
|
093
|
public
static String ReadMessage(ObjectInputStream in)
|
|
094
|
{
|
095
|
String
reader = "";
|
|
096
|
try {
|
097
|
reader
= (String) in.readObject();
|
|
098
|
}
catch (IOException ex) {
|
099
|
Logger.getLogger(Tugas_Server.class.getName()).log(Level.SEVERE,
null, ex);
|
||
100
|
}
catch (ClassNotFoundException ex) {
|
||
101
|
Logger.getLogger(Tugas_Server.class.getName()).log(Level.SEVERE,
null, ex);
|
||
102
|
}
|
||
103
|
System.out.println(reader);
|
|
104
|
//
Fungsi ini me-return nilai string hasil bacaan.
|
105
|
return reader;
|
|
106
|
}
|
107
|
|
|
108
|
//
Fungsi untuk mengirim object / data kepada client
|
109
|
public
static void SendMessage(String word, ObjectOutputStream out)
|
|
110
|
{
|
111
|
try {
|
|
112
|
out.writeObject(word);
|
113
|
//
Pembersihan isi memori untuk nantinya digunakan kembali memori tersebut.
|
|
114
|
out.flush();
|
115
|
}
catch (IOException ex) {
|
||
116
|
Logger.getLogger(Tugas_Server.class.getName()).log(Level.SEVERE,
null, ex);
|
||
117
|
}
|
|
118
|
}
|
119
|
|
|
120
|
}
|
Tidak ada komentar:
Posting Komentar