Creating a simple Chat Client/Server Solution – Part5

Standard

Stage 5: Chat client moved to very simple GUI interface

import java.net.*;
import java.io.*;
import java.applet.*;
import java.awt.*;
public class ChatClient extends Applet
{  private Socket socket              = null;
private DataInputStream  console   = null;
private DataOutputStream streamOut = null;
private ChatClientThread client    = null;
private TextArea  display = new TextArea();
private TextField input   = new TextField();
private Button    send    = new Button(“Send”), connect = new Button(“Connect”),
quit    = new Button(“Bye”);
private String    serverName = “localhost”;
private int       serverPort = 4444;

public void init()
{  Panel keys = new Panel(); keys.setLayout(new GridLayout(1,2));
keys.add(quit); keys.add(connect);
Panel south = new Panel(); south.setLayout(new BorderLayout());
south.add(“West”, keys); south.add(“Center”, input);  south.add(“East”, send);
Label title = new Label(“Simple Chat Client Applet”, Label.CENTER);
title.setFont(new Font(“Helvetica”, Font.BOLD, 14));
setLayout(new BorderLayout());
add(“North”, title); add(“Center”, display);  add(“South”,  south);
quit.disable(); send.disable(); getParameters(); }
public boolean action(Event e, Object o)
{  if (e.target == quit)
{  input.setText(“.bye”);
send();  quit.disable(); send.disable(); connect.enable(); }
else if (e.target == connect)
{  connect(serverName, serverPort); }
else if (e.target == send)
{  send(); input.requestFocus(); }
return true; }
public void connect(String serverName, int serverPort)
{  println(“Establishing connection. Please wait …”);
try
{  socket = new Socket(serverName, serverPort);
println(“Connected: ” + socket);
open(); send.enable(); connect.disable(); quit.enable(); }
catch(UnknownHostException uhe)
{  println(“Host unknown: ” + uhe.getMessage()); }
catch(IOException ioe)
{  println(“Unexpected exception: ” + ioe.getMessage()); } }
private void send()
{  try
{  streamOut.writeUTF(input.getText()); streamOut.flush(); input.setText(“”); }
catch(IOException ioe)
{  println(“Sending error: ” + ioe.getMessage()); close(); } }
public void handle(String msg)
{  if (msg.equals(“.bye”))
{  println(“Good bye. Press RETURN to exit …”);  close(); }
else println(msg); }
public void open()
{  try
{  streamOut = new DataOutputStream(socket.getOutputStream());
client = new ChatClientThread(this, socket); }
catch(IOException ioe)
{  println(“Error opening output stream: ” + ioe); } }
public void close()
{  try
{  if (streamOut != null)  streamOut.close();
if (socket    != null)  socket.close(); }
catch(IOException ioe)
{  println(“Error closing …”); }
client.close();  client.stop(); }
private void println(String msg)
{  display.appendText(msg + “\n”); }
public void getParameters()
{  serverName = getParameter(“host”);
serverPort = Integer.parseInt(getParameter(“port”)); }
}

Nguồn: sưu tầm

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s