importjava.net.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
publicclassClient1extendsFrameimplementsRunnable{
Socketsocket;
BufferedReaderin;
PrintWriterout;
privateTextFieldtextfield=newTextField();//输入文本框就是你想从键盘输入的数据先写在这
privateTextAreatextarea=newTextArea();//对话框显示客户端之间的聊天信息
publicClient1(){
super("聊天窗口");//初始化窗口标题
setSize(300,200);//设置窗口大小
setLayout(newBorderLayout());//布局
add(BorderLayout.SOUTH,textfield);
add(BorderLayout.CENTER,textarea);
textfield.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
sendChat(textfield.getText());//向服务器发送数据
}
});//增加监听器当你按下回车键时就执行
this.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEventwe){
try{
if(in!=null)in.close();
if(out!=null)out.close();
if(socket!=null)socket.close();
}catch(IOExceptione){
}
System.exit(0);//退出程序
}
});//增加关闭窗口的监听器当点击窗口的X时关闭窗口
try{
socket=newSocket("localhost",3333);
out=newPrintWriter(socket.getOutputStream(),true);
in=newBufferedReader(newInputStreamReader(socket.getInputStream()));
}catch(Exceptione){
e.printStackTrace();
}
newThread(this).start();//用一个线程去接收从服务器转发的其他客户端的数据
setVisible(true);
}
//sendChat方法用于向服务器发送数据
publicvoidsendChat(Stringmessage){
out.println(message);
textfield.setText("");//输入框清空
}
publicvoidrun(){
Stringmessage=null;
try{
while(true){
message=in.readLine();
textarea.append(message+"\n");//把从服务器转发来的其他客户端信息追加到对话框
}
}catch(IOExceptione){System.out.println(e);}
}
publicstaticvoidmain(String[]args){
newClient1();
}
}