AppServer.java
上传用户:bjlylbj
上传日期:2010-01-31
资源大小:5k
文件大小:4k
源码类别:

Telnet服务器

开发平台:

Java

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import java.io.*;
  5. import java.net.*;
  6. public class AppServer extends Thread implements ActionListener
  7. {
  8. static JFrame frm;
  9. static JPanel pnl;
  10. JScrollPane slp_chat;
  11. JTextArea txr_chat;
  12. JScrollPane slp_sendchat;
  13. JTextArea txr_sendchat;
  14. JLabel lbl_chat;
  15. JLabel lbl_sendchat;
  16. JButton btn_send;
  17. JButton btn_exit;
  18. String str;
  19. ServerSocket serverSocket;
  20. public static AppServer p;
  21.   
  22.   
  23.   public AppServer()
  24. {
  25. Font f=new Font("Roman",Font.BOLD,18);
  26. frm=new JFrame("online chat on server");
  27.     pnl=new JPanel();
  28. pnl.setLayout(null);
  29. frm.getContentPane().add(pnl);
  30. lbl_chat=new JLabel("online");
  31. lbl_chat.setBounds(new Rectangle(0,5,50,30));
  32. pnl.add(lbl_chat);
  33. txr_chat=new JTextArea();
  34. txr_chat.setEditable(false);
  35. slp_chat=new JScrollPane(txr_chat);
  36. slp_chat.setBounds(new Rectangle(3,50,480,200));
  37. pnl.add(slp_chat);
  38. lbl_sendchat=new JLabel("send message");
  39. lbl_sendchat.setBounds(new Rectangle(0,250,100,30));
  40.     pnl.add(lbl_sendchat);
  41.  
  42.     txr_sendchat=new JTextArea();
  43.     slp_sendchat=new JScrollPane(txr_sendchat);
  44.     slp_sendchat.setBounds(new Rectangle(3,280,480,80));
  45.     pnl.add(slp_sendchat);
  46. txr_chat.setFont(f);
  47. txr_sendchat.setFont(f);
  48.     btn_send=new JButton("send");
  49.     btn_exit=new JButton("exit");
  50.     btn_send.addActionListener(this);
  51.     btn_exit.addActionListener(this);
  52.    
  53.     
  54.     btn_send.setFont(f);
  55.     btn_exit.setFont(f);
  56.  
  57.     txr_chat.setText("");
  58.     
  59.    
  60.     btn_exit.setBounds(new Rectangle(5,370,100,30));
  61.     pnl.add(btn_exit);
  62.    
  63.     btn_send.setBounds(new Rectangle(350,370,100,30));
  64.     pnl.add(btn_send);
  65.    
  66.     frm.setSize(500,500);
  67.     frm.setVisible(true);
  68.     frm.setResizable(false);
  69.     str="";
  70. try
  71.    {
  72. serverSocket=new ServerSocket(1001);
  73.     }
  74.     catch(IOException e)
  75.     {
  76.      fail(e,"could not start server");
  77.     }
  78.     System.out.println("server start ...");
  79.     this.start();
  80. }
  81.   
  82.   
  83.   public static void fail(Exception e,String str)
  84. {
  85. System.out.print(str+"."+e);
  86. }
  87.   
  88.   public void run()
  89. {
  90. try
  91. {
  92. while(true)
  93. {
  94. Socket client= serverSocket.accept();
  95. Conn con=new Conn(client);
  96. }
  97. }
  98. catch(IOException e)
  99. {
  100.     fail(e,"could not start server");
  101. }
  102. }
  103.  
  104.   public static void main(String args[])
  105. {
  106. p=new AppServer();
  107. }
  108.   public void actionPerformed(ActionEvent evt)
  109. {
  110.       if(evt.getSource()==btn_exit)
  111.   {
  112. frm=null;
  113. frm.disable();
  114. frm.setVisible(false);
  115.   }
  116.   else if(evt.getSource()==btn_send)
  117.   {
  118. Msg.str=txr_sendchat.getText();
  119.     txr_sendchat.setText("");
  120.     
  121.       }
  122.      
  123. }
  124. public class Conn extends Thread
  125. {
  126. protected Socket netClient ;
  127. protected BufferedReader fromClient;
  128. protected PrintStream toClient;
  129. ;
  130.   public Conn(Socket client)
  131. {
  132.     netClient=client;
  133. try
  134. {
  135. fromClient=new BufferedReader
  136.             (new InputStreamReader
  137.             (netClient.getInputStream()));
  138.             toClient=new PrintStream(netClient.getOutputStream());
  139. }
  140. catch(IOException e)
  141. {
  142. try
  143. {
  144. netClient.close();
  145. }
  146. catch(IOException ex)
  147. {
  148. System.err.println(ex.toString());
  149. }
  150. }
  151. this.start();
  152. }
  153. public void run()
  154. {
  155. String fromclientMessage="";
  156. try
  157. {
  158. while(true)
  159. {
  160. fromclientMessage=fromClient.readLine();
  161.  if(txr_chat.getText().equals(""))
  162.      {
  163.    txr_chat.setText("client said:      "+fromclientMessage);
  164.  }
  165.  else
  166.  {
  167.   txr_chat.setText(txr_chat.getText()+"n"+"client said:"+fromclientMessage);
  168.      }
  169. while(Msg.str.equals(""))
  170.      ;
  171. txr_chat.setText(txr_chat.getText()+"n"+"server said:"+Msg.str);
  172. toClient.println(Msg.str);
  173. Msg.str="";
  174. }
  175. }
  176. catch(IOException e)
  177. {
  178. }
  179. finally
  180. {
  181. try
  182. {
  183. netClient.close();
  184. }
  185. catch(IOException ex)
  186. {
  187. }
  188. }
  189. }
  190. }
  191. }