import java.awt.*;import java.awt.event.*;import java.io.*;import java.net.*;import javax.swing.*;public class charroomserver {//----------------------------------------------------------****************定义变量//JFrameJFrame charFrame;JTextArea charText;JTextField charField2;JButton charButton2;ScrollPane sPanel;//JPanelJPanel jPanel1,jPanel2;//端口号and netpublic final static int DEFAULT_PORT=6666;//默认端口号ServerSocket serverSock;Socket clientSock;//index记录当前对象int index=0;//线程,对象ChatAcceptThread chatAcceptThread[]=new ChatAcceptThread[50];//对象数组 //_________________________________________________________________________________ //------------------------------------------------------------***************方法 //服务端图形 void gUi(){//new charFrame=new JFrame("聊天室服务端"); jPanel2=new JPanel(); charButton2=new JButton("退出"); charText=new JTextArea(20,20); sPanel=new ScrollPane(); charField2=new JTextField(20); Container chartain=charFrame.getContentPane();//add sPanel.add(charText);charText.setLineWrap(true); jPanel2.add(charButton2); jPanel2.add(charField2);// chartain.add(jPanel1,BorderLayout.NORTH); chartain.add(sPanel,BorderLayout.CENTER); chartain.add(jPanel2,BorderLayout.SOUTH); charFrame.setBounds(200,200,500,400); charFrame.setVisible(true); charFrame.pack(); charFrame.show();//-------------------------------------------------------***************监听 //_________________________________________________________________________________}//监听void serverListen(){try{ serverSock=new ServerSocket(DEFAULT_PORT); while(true){ clientSock=serverSock.accept(); chatAcceptThread[index]=new ChatAcceptThread(clientSock);//启动接受连接的线程 chatAcceptThread[index].start(); index++; } }catch(IOException e){ } }//_________________________________________________________________________________ public charroomserver(){ gUi(); serverListen();//服务器开始监听 }//----------------------------------------------------------************内部类//线程,多用户连接 class ChatAcceptThread extends Thread{ Socket clientSock2; BufferedReader in; PrintWriter out;public ChatAcceptThread(Socket upSock){ clientSock2=upSock; }//runpublic void run(){ try{ in=new BufferedReader(new InputStreamReader(clientSock2.getInputStream())); out=new PrintWriter(clientSock2.getOutputStream()); while(true){ String str=in.readLine();// System.out.println(str); charText.append(str+"\n"); for(int i=0;i<index;i++){ if(str.equals("end")) break; chatAcceptThread[i].out.println(str); chatAcceptThread[i].out.flush(); } } } catch(Exception e){ }}}//______________________________________________________________________________public static void main(String args[]){ new charroomserver(); }}

评论