import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.net.*;
import java.io.*;
import java.lang.*;
public class Server_Amir extends Thread {
class message extends Object implements Serializable {
public String name,msg;
public void show(String name, String msg) {
t3.append(name + ":" + msg);
// send to another//---------------------
}
}
JPanel p;
JLabel l1, l2;
GridBagLayout lay;
GridBagConstraints con;
JTextField t1, t2;
JTextArea t3;
JFrame f;
JButton b1, b2;
public Server_Amir() {
f = new JFrame("Server");
p = new JPanel();
lay = new GridBagLayout();
con = new GridBagConstraints();
l1 = new JLabel("");
l2 = new JLabel("Enter your name:");
t1 = new JTextField(30);
t2 = new JTextField(255);
t3 = new JTextArea();
b1 = new JButton("Make a Connection");
b2 = new JButton("Send");
f.add(p);
f.setVisible(true);
f.setSize(500, 500);
p.setLayout(lay);
// Layout
p.add(l1);
p.add(l2);
p.add(t1);
p.add(t2);
p.add(t3);
p.add(b1);
p.add(b2);
//
con.fill = GridBagConstraints.HORIZONTAL;
con.gridx = 1;
con.gridy = 1;
lay.setConstraints(l1, con);
//
con.anchor = GridBagConstraints.EAST;
con.gridx = 1;
con.gridy = 2;
lay.setConstraints(l2, con);
//
con.gridx = 2;
con.gridy = 2;
lay.setConstraints(t1, con);
//
con.gridx = 2;
con.gridy = 3;
lay.setConstraints(b1, con);
//
con.gridx = 1;
con.gridy = 4;
lay.setConstraints(t3, con);
//
con.gridx = 1;
con.gridy = 5;
lay.setConstraints(t2, con);
//
con.gridx = 2;
con.gridy = 5;
lay.setConstraints(b2, con);
//
buttonlistener bl = new buttonlistener();
b1.addActionListener(bl);
b2.addActionListener(bl);
}
public static void main(String[] args) {
Server_Amir c = new Server_Amir();
}
class buttonlistener extends Thread implements ActionListener {
public void run() {
message mes1=new message();
mes1=null;
while(true){
try {
ServerSocket ss=new ServerSocket(1001);
Socket client =ss.accept();
BufferedReader bf=new BufferedReader(new InputStreamReader(client.getInputStream()));
ObjectInputStream oisserv = new ObjectInputStream(client
.getInputStream());
mes1=(message)oisserv.readObject();
if(mes1!=null){
String nname=mes1.name;
String nmsg=mes1.msg;
String total=bf.readLine();
t3.append(total);
mes1.show(nname, nmsg);
}
mes1=null;
} catch (IOException e) {}
catch(ClassNotFoundException e1){t3.append("Error in Classes...");}
}
}
public void actionPerformed(ActionEvent evt) {
Object obj = evt.getSource();
if (obj == b2) {
try {
String total=t1.getText()+":"+t2.getText();
message mes = new message();
mes.show(t1.getText(), t2.getText());
Socket client = new Socket("127.0.0.1",1001);
PrintStream ps=new PrintStream(client.getOutputStream());
ObjectOutputStream oosserv = new ObjectOutputStream(
client.getOutputStream());
PrintWriter p=new PrintWriter(client.getOutputStream());
p.print(total);
oosserv.writeObject((message) mes);
} catch (IOException e) {
t3.append("Error in connection...");
}
}
if (obj == b1) {
Thread t=new Thread(this);
t.start();
}
}
}
}