java网络编程之聊天室客户端(二)

  这是客户端代码.是基于Applet的.

import java.io.*;
import java.applet.*;
import java.net.*;
import java.awt.event.*;
import java.awt.*;
public class ChatClient extends Applet implements Runnable,ActionListener
{
 int sPort;
 String sName;
 Socket cSocket;
 boolean dead;
 PrintStream write;
 BufferedReader read;
 Thread t;
 Font F;
 Panel south;
 Button Send;
 TextArea message;
 TextField send;
 public void init()
 {
   setLayout(new BorderLayout());
   dead=false;
   F=new Font("Dialog",Font.BOLD,16);
   south=new Panel();
   Send=new Button("发送");
   message=new TextArea();
   send=new TextField(40);
   south.add(send);
   south.add(Send);
   message.setFont(F);
   message.setEditable(false);
   message.append("欢迎使用周静的个人聊天室/n/n");
   message.setBackground(Color.blue);
   message.setForeground(Color.white);
   add(south,BorderLayout.SOUTH);
   add(message,BorderLayout.CENTER);
   Send.addActionListener(this);
   try{
    sPort=6633;
    sName=getDocumentBase().getHost();
    cSocket=new Socket(sName,sPort);
    write=new PrintStream(cSocket.getOutputStream());
    read=new BufferedReader(new InputStreamReader(cSocket.getInputStream()));
   }catch(UnknownHostException e)
   {
    message.append("发生异常"+e);
    Send.setEnabled(false);
   }
   catch(IOException e)
   {
    message.append("发生异常IO管道失败");
    message.setEnabled(false);
   }
   t=new Thread(this);
   t.start();
 }
 public void run()
 {
  String m;
  while(!dead)
  {
   try{
     m=read.readLine();
     if(m!=null)
     {
      message.append("/n"+m);
     }
         }catch(IOException e)
         {
          message.append("/n/n远程服务器发生故障");
          message.append("/n请尝试重新连机");
          Send.setEnabled(false);
          break;
         }
    }
 }
 public void finalize()
 {
  try{
   read.close();
   write.close();
   cSocket.close();
   }catch(IOException e)
   {}
   cSocket=null;
 }
 public void actionPerformed(ActionEvent e)
 {
  if(send.getText().equals(""))
  {
   return;
  }
  else if(send.getText().equals("bye"))
  {
   dead=true;
  }
  write.println(send.getText());
  //message.append("/n"+send.getText());
  send.setText("");
 }


  

 

你可能感兴趣的:(java网络编程之聊天室客户端(二))