这是客户端代码.是基于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("");
}
}
本文介绍了一个基于Applet技术的简易聊天室客户端实现方法。该客户端通过Socket连接到服务器,实现了基本的消息发送和接收功能,并具备良好的用户交互界面。
886

被折叠的 条评论
为什么被折叠?



