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

本文介绍了一个基于Applet技术的简易聊天室客户端实现方法。该客户端通过Socket连接到服务器,实现了基本的消息发送和接收功能,并具备良好的用户交互界面。

这是客户端代码.是基于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("");
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值