誼's Blog|J2EE|

          o(∩_∩)o

          2008年9月1日

          Client:
          package Chat;
          import java.io.*;
          import java.net.*;
          import java.awt.*;
          import java.awt.event.ActionEvent;
          import java.awt.event.ActionListener;

          import javax.swing.*;

          public class Client {
              JTextArea jta;
              JTextField jtf;
              BufferedReader in;
              PrintWriter out;
              
          private void initGui(){
                  JFrame f
          =new JFrame("Client");
                  f.setSize(
          400,300);
                  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                  jta
          =new JTextArea();
                  jta.setEditable(
          false);
                  f.add(
          new JScrollPane(jta));
                  jtf
          =new JTextField();
                  f.add(jtf,
          "South");
                  f.setVisible(
          true);
                  jtf.addActionListener(
          new ActionListener(){
                      
          public void actionPerformed(ActionEvent arg0) {
                          String text
          =jtf.getText();
                          jtf.setText(
          "");
                          out.println(text);
                          out.flush();
                      }
                  });
              }
              
          private void initNet(){
                  
          try {
                      Socket s
          =new Socket("127.0.0.1",8888);
                      out
          =new PrintWriter(s.getOutputStream());
                      in
          =new BufferedReader(
                              
          new InputStreamReader(s.getInputStream()));
                  } 
          catch (Exception e) {
                      e.printStackTrace();
                  }
              }
              
          private void receive(){
                  
          try {
                      
          while(true){
                          String str 
          = in.readLine();
                          
          if(str==null){
                              
          return ;
                          }
                          jta.append(
          ""+str+"\n");
                      }
                  } 
          catch (IOException e) {
                      e.printStackTrace();
                  }
              }
              
          public Client(){
                  initGui();
                  initNet();
              }
              
              
          public static void main(String[] args) throws Exception{
                  Client c
          =new Client();
                  c.receive();
              }
          }

          Server:
          package ChatIV;
          import java.net.*;
          import java.io.*;
          import java.util.*;

          public class Server {
              
          public static void main(String args[]){
                  
          try {
                      ServerSocket ss 
          = new ServerSocket(8888);
                      List sockets 
          = new ArrayList();
                      
          while(true){
                          Socket s 
          = ss.accept();
                          sockets.add(s);
                          Thread t1 
          = new ChatThread(s,sockets);
                          t1.start();
                      }
                  } 
          catch (IOException e) {
                      e.printStackTrace();
                  }
              }
          }
          class ChatThread extends Thread{
              Socket s;
              List sockets;
              
          public ChatThread(Socket s,List sockets){
                  
          this.s=s;
                  
          this.sockets=sockets;
              }
              
          public void run(){
                  
          try {
                      BufferedReader in 
          = new BufferedReader(new InputStreamReader(s.getInputStream()));
                      
          while(true){
                          String str 
          = in.readLine();
                          
          for(int i=0;i<sockets.size();i++){
                              Socket s2 
          = (Socket)sockets.get(i);
                              PrintWriter out 
          = new PrintWriter(s2.getOutputStream());
                              out.println(str);
                              out.flush();
                          }
                      }
                  } 
          catch (IOException e) {
                      e.printStackTrace();
                  }
          finally{
                      
          try {
                          s.close();
                      } 
          catch (IOException e) {
                          e.printStackTrace();
                      }
                  }
              }
          }
          posted @ 2008-09-01 20:57 張誼 閱讀(235) | 評論 (2)編輯 收藏
          僅列出標題  

          公告

          [About Me]

          ||關注計算機網絡與軟件研發||
          張誼
          CCNA.DWE.MCP.
          MCSA.MCSE.MCDBA
          中國.四川.成都
          BG8CRV

          導航

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          統計

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          積分與排名

          最新評論

          主站蜘蛛池模板: 湖南省| 易门县| 龙山县| 丽江市| 巫溪县| 双流县| 共和县| 井陉县| 长葛市| 介休市| 建德市| 南部县| 元谋县| 临高县| 凤翔县| 大厂| 登封市| 桐梓县| 集贤县| 阳城县| 辽阳市| 虎林市| 乐亭县| 涿州市| 罗源县| 黔南| 永城市| 霍州市| 永福县| 九江市| 绥阳县| 兰考县| 米泉市| 新兴县| 仲巴县| 霸州市| 通辽市| 金山区| 玉山县| 滕州市| 郓城县|