要完成一个java服务器,要求一个客户端能通过服务器向别的客户端发送“hello”,也能接收“hello”

2022-03-16 科技 90阅读
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();
}
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com