e.printStackTrace();
}
finally{
try {
if(in!=null) in.close();
if(output!=null) output.close();
s.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}Chat_Client.java
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class Chat_Client extends Frame{
TextField textField=new TextField();
TextArea textArea=new TextArea();
String str=null;
Socket client;
ObjectOutputStream output=null;
ObjectInputStream input=null;
boolean isConnected=false;
public static void main(String[] args) {
new Chat_Client().launchFrame();
}
public Chat_Client(){
connect();
new Thread(new ClientOwnThread()).start();
}
public void launchFrame(){
this.setLocation(400,300);
this.setSize(300,300);
this.add(textArea,BorderLayout.NORTH);
this.add(textField,BorderLayout.SOUTH);
this.pack();
textArea.setEditable(false);
this.setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
textField.addActionListener(new TextFieldListener());
}
private void connect(){
try {
client=new Socket("127.0.0.1",8888);
output=new ObjectOutputStream(client.getOutputStream());
input=new ObjectInputStream(client.getInputStream());
isConnected=true;
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void disConnect(){
try {
if(output!=null) output.close();
if(input!=null) input.close();
if(client!=null) client.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
class ClientOwnThread implements Runnable{
public void run() {
try {
while(isConnected){
String str=(String)input.readObject();
textArea.append(str+"\n");
}
} catch (Exception e) {
e.printStackTrace();
}
finally{
disConnect();
}
}
}
private class TextFieldListener implements ActionListener{
public void actionPerformed(ActionEvent arg0) {
str=textField.getText().trim();
textField.setText("");