亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? chatserver.java~28~

?? java編寫的聊天室服務(wù)器程序
?? JAVA~28~
字號:
package chatServer;
import chatServer.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
import chatServer.*;
import javax.swing.tree.*;
public class ChatServer extends WindowAdapter implements ActionListener,Runnable {
     private JFrame f = null;
     private JPanel p1 = null;
     private JButton button_start = null;
     private JPanel p2 = null;
     private JTree tree = null;
     private DefaultTreeModel treeModel=null;
     private DefaultMutableTreeNode root=null;
     private JLabel revMsgLabel;
     private JPanel p3 = null;
     public JTextArea revMsg = null;//public for ServerThread
     private JButton button_clear = null;
     private BorderLayout borderLayout1 = new BorderLayout();
     private BorderLayout borderLayout2 = new BorderLayout();
     private BorderLayout borderLayout3 = new BorderLayout();

     private ServerSocket ss;
     private Socket sock;
     private DataInputStream in;
     private DataOutputStream dout;
     private UsrContainer usrList;
     public ChatServer(Socket sock)
     {
         this.sock=sock;
     }

    public ChatServer()
    {
        usrList=new UsrContainer();

         f = new JFrame("ChatServer");
         Container contentPane = f.getContentPane();
         f.setSize(400, 500);
         contentPane.setLayout(borderLayout1);

         p1 = new JPanel();
         button_start = new JButton("Start Server");
         //button_start.setPreferredSize(new Dimension(60, 30));
         button_start.addActionListener(this);
         p1.add(button_start);
         f.add(p1, borderLayout1.NORTH);

         p2 = new JPanel();
        p2.setSize(100, 400);
        root = new DefaultMutableTreeNode("User List");
        tree = new JTree(root);
        treeModel=(DefaultTreeModel)tree.getModel();
        JScrollPane scrollPane=new JScrollPane();
        scrollPane.setViewportView(tree);
        scrollPane.setPreferredSize(new Dimension(120, 768));
        p2.add(scrollPane);
        f.add(p2, borderLayout1.WEST);


         p3 = new JPanel();

         revMsg = new JTextArea();
         revMsg.setLineWrap(true);
         JScrollPane revScrollPane = new JScrollPane(revMsg);
         revMsg.setEditable(false);
         button_clear = new JButton("clear");
         button_clear.addActionListener(this);


         JPanel p_3_1 = new JPanel();
        revMsgLabel = new JLabel("消息列表:");
        p_3_1.setLayout(borderLayout2);
        p_3_1.add(revMsgLabel, borderLayout2.NORTH);
        p_3_1.add(button_clear, borderLayout2.SOUTH);
        p_3_1.add(revScrollPane, borderLayout2.CENTER);



         f.add(p_3_1, borderLayout1.CENTER);

         f.show();
         f.addWindowListener(this);


    }

    private void listen( int port ) throws IOException {

    // Create the ServerSocket
    ss = new ServerSocket( port );

    // Keep accepting connections forever
    while (true) {

      // Grab the next incoming connection
      Socket s = ss.accept();

      revMsg.setText( revMsg.getText()+"\n"+"Connection from "+s );

      DataInputStream tmpin = new DataInputStream( s.getInputStream() );
      // Create a DataInputStream for writing usrNick come
      String usrNick = tmpin.readUTF();


      // Create a DataOutputStream for writing data to the
      // other side
      DataOutputStream dout = new DataOutputStream( s.getOutputStream() );

      // Save this stream so we don't need to make it again
      UserInfo usr=new UserInfo(usrNick,s,dout);
      usrList.addUser(usr);
      revMsg.setText( revMsg.getText()+"\n"+usrList.getUsrNum() );


      // Create a new thread for this connection, and then forget
      // about it
      new ServerThread( this,s).start();
      updateUsrList();
    }
  }


   public void actionPerformed(ActionEvent e)
   {
       if(e.getSource()==button_start)
        {
            if(button_start.getText().equals("Start Server"))
            {
                new Thread(this).start();
            }
        }

   }
   public void run()
   {
       try{
             listen(10000);
      }
      catch( IOException ie )
      {
        revMsg.setText( revMsg.getText()+"\n"+ie.toString());
      }

   }
   public void sendToAll(String message)
   {
       int i=0;
       for(i=0;i<usrList.getUsrNum();i++)
       {
           try{
               usrList.getUsr(i).sendToUsr(message);
           }
           catch( IOException ie )
           {
               revMsg.setText( revMsg.getText()+"\n"+"Sending "+message);
           }

       }
   }
   public void removeConnection(Socket socket)
   {

       try
       {
           UserInfo tmp = new UserInfo(socket);
           usrList.delUser(tmp);
           socket.close();
           updateUsrList();
       }
       catch(IOException ie)
       {
           revMsg.setText(revMsg.getText()+"\n"+ie.toString());
       }

   }

   public void updateUsrList()
  {
      root.removeAllChildren();
      treeModel.reload();
      String strSend=null;
      int usrNum=usrList.getUsrNum();
      if(usrNum<10)
         strSend=""+1+0+usrNum;
      else
          strSend=""+1+usrNum;
      int i=0;
      for(i=0;i<usrNum;i++)
      {
          String nodeStr=usrList.getUsr(i).getNickAndIP();
          DefaultMutableTreeNode newNode=new DefaultMutableTreeNode(nodeStr);
          treeModel.insertNodeInto(newNode,root,root.getChildCount());
          tree.scrollPathToVisible(new TreePath(newNode.getPath()));
          strSend+=usrList.getUsr(i).getNick().length()+usrList.getUsr(i).getNick();
          String tmpIP=usrList.getUsr(i).getIP();
          int tmpIPlen=tmpIP.length();
          if(tmpIPlen<10)
              strSend+="0"+tmpIPlen+tmpIP;
          else
              strSend+=tmpIPlen+tmpIP;

      }
      this.sendToAll(strSend);



  }


   public static void main(String[] args) {
        ChatServer chatclient = new ChatServer();
    }


}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品免费在线| 欧美日韩国产精品自在自线| 不卡一区二区三区四区| 欧美日韩精品综合在线| 久久精品一二三| 日韩电影一区二区三区| 色哟哟日韩精品| 久久久久久久久99精品| 蜜桃av噜噜一区| 在线视频综合导航| 中文字幕永久在线不卡| 国产99精品视频| 欧美mv日韩mv国产网站app| 亚洲大尺度视频在线观看| 91香蕉视频污| 中文文精品字幕一区二区| 精品在线一区二区三区| 日韩欧美在线网站| 无码av中文一区二区三区桃花岛| 色8久久精品久久久久久蜜| 国产精品日韩成人| 成人免费精品视频| 国产精品三级av| av中文一区二区三区| 国产精品免费视频观看| 国产毛片精品国产一区二区三区| 日韩欧美成人激情| 久久国产精品色婷婷| 日韩美女在线视频| 国产一区二区三区免费在线观看| 日韩欧美一区二区久久婷婷| 热久久一区二区| 欧美一区二区三区色| 秋霞午夜av一区二区三区| 欧美一级免费大片| 美女mm1313爽爽久久久蜜臀| 91精品国产入口| 久久99蜜桃精品| 久久久久亚洲蜜桃| 国产 欧美在线| 国产精品二区一区二区aⅴ污介绍| av午夜精品一区二区三区| 亚洲人成伊人成综合网小说| 在线视频一区二区免费| 天堂va蜜桃一区二区三区漫画版 | 日韩欧美二区三区| 极品尤物av久久免费看| 久久婷婷国产综合精品青草| 成人一区二区在线观看| 一区二区在线观看视频在线观看| 欧美在线视频你懂得| 日韩二区在线观看| 国产欧美日本一区二区三区| 91老司机福利 在线| 亚洲高清免费观看| 日韩免费高清视频| 91影视在线播放| 日韩高清一区在线| 欧美极品aⅴ影院| 欧美视频自拍偷拍| 国产精品影视网| 亚洲男人电影天堂| 日韩精品资源二区在线| 99国产欧美久久久精品| 日韩精品每日更新| 久久精品一区蜜桃臀影院| 色偷偷久久人人79超碰人人澡| 亚洲第一av色| 国产精品蜜臀av| 日韩免费电影一区| 色素色在线综合| 国内精品久久久久影院色| 亚洲免费观看视频| 久久女同精品一区二区| 欧美中文字幕一二三区视频| 国产揄拍国内精品对白| 一区二区三区波多野结衣在线观看| 91精品麻豆日日躁夜夜躁| 成人黄页在线观看| 捆绑变态av一区二区三区| 亚洲人成精品久久久久久| 日韩精品中文字幕一区二区三区 | 国产成人h网站| 三级在线观看一区二区| 国产精品久久久久久久午夜片| 91麻豆精品国产91久久久久| 成人高清视频在线| 国产乱码字幕精品高清av| 亚洲成av人影院| 最新日韩av在线| 久久久久成人黄色影片| 日韩精品中文字幕一区二区三区| 欧美综合在线视频| 不卡的电视剧免费网站有什么| 久久电影国产免费久久电影| 亚洲国产欧美另类丝袜| 中文字幕一区二区三区不卡| 久久久久国产精品麻豆ai换脸| 日韩一区二区精品葵司在线| 欧美日韩午夜在线| 在线观看一区二区视频| 97久久超碰国产精品电影| 国产99久久久国产精品潘金| 国产主播一区二区三区| 美女网站在线免费欧美精品| 午夜国产精品一区| 亚洲电影你懂得| 亚洲一级在线观看| 亚洲午夜激情网页| 亚洲精品视频在线| 亚洲六月丁香色婷婷综合久久| 中文字幕制服丝袜一区二区三区 | 国产精品18久久久久久久久 | 91丨porny丨最新| 成人美女视频在线观看| 成人一级视频在线观看| 国产精品一区二区久久精品爱涩 | 91蝌蚪porny成人天涯| 99久久精品国产观看| 色欧美日韩亚洲| 日本道色综合久久| 欧美日韩一区三区四区| 欧美群妇大交群中文字幕| 这里是久久伊人| 精品入口麻豆88视频| 国产亚洲视频系列| 亚洲欧洲国产日韩| 一区二区国产视频| 人人精品人人爱| 国产精品18久久久久久vr| 成人精品一区二区三区中文字幕| jlzzjlzz国产精品久久| 欧美手机在线视频| 精品国产一区二区三区久久影院| 国产日韩精品视频一区| 亚洲女人的天堂| 日韩精品欧美成人高清一区二区| 老司机精品视频一区二区三区| 高潮精品一区videoshd| 色婷婷激情一区二区三区| 欧美一区二区福利在线| 久久精品在线观看| 亚洲午夜久久久久久久久电影院 | 欧美激情综合五月色丁香小说| 最新国产成人在线观看| 丝袜亚洲精品中文字幕一区| 国产真实乱对白精彩久久| 91女厕偷拍女厕偷拍高清| 91麻豆精品国产91久久久使用方法 | 在线这里只有精品| 欧美不卡123| 中文字幕欧美一| 日本vs亚洲vs韩国一区三区| 高清国产一区二区| 777久久久精品| 国产精品免费网站在线观看| 日韩av一区二| 99久久综合狠狠综合久久| 欧美一区二区播放| 亚洲三级电影全部在线观看高清| 蜜臀久久99精品久久久久宅男 | 久久91精品国产91久久小草 | 亚洲精品国产精品乱码不99| 精品一二三四在线| 欧美日韩一区二区三区免费看 | eeuss鲁片一区二区三区在线观看| 欧美电影在哪看比较好| 亚洲国产岛国毛片在线| 日韩av午夜在线观看| 色先锋资源久久综合| 久久综合久久久久88| 日日摸夜夜添夜夜添国产精品| 99精品久久免费看蜜臀剧情介绍| 精品久久久网站| 午夜国产不卡在线观看视频| 91免费国产在线观看| 久久久久高清精品| 久久精品72免费观看| 精品视频一区三区九区| 亚洲日本va在线观看| 成人h动漫精品一区二| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲午夜久久久久久久久电影网| 波多野结衣中文字幕一区 | 91精品国产品国语在线不卡 | 成人欧美一区二区三区小说| 国产高清久久久| 精品国产乱子伦一区| 日本不卡不码高清免费观看| 欧美午夜精品一区二区蜜桃| 中文字幕一区三区| 97国产一区二区| 国产精品传媒视频| 91影院在线观看| 亚洲少妇最新在线视频| 972aa.com艺术欧美| 亚洲欧美日韩久久| 色婷婷综合中文久久一本| 亚洲人成网站在线| 91成人在线精品|