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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? chatserver.java~30~

?? java編寫的聊天室服務器程序
?? JAVA~30~
字號:
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(600, 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(300, 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();
    }


}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天堂在线亚洲视频| 欧美在线免费视屏| 在线视频国内一区二区| 日韩美女天天操| 一区二区不卡在线视频 午夜欧美不卡在 | 91精品国产91综合久久蜜臀| 久久久777精品电影网影网| 一区二区三区美女视频| 国产黄色成人av| 日韩午夜激情电影| 洋洋成人永久网站入口| 成人污视频在线观看| 日韩欧美成人一区| 亚洲va欧美va人人爽| 色香蕉成人二区免费| 中文字幕不卡三区| 国产高清在线精品| 精品国产乱码久久久久久图片| 亚洲国产另类av| 91黄色小视频| 一区二区在线电影| 91网站最新网址| 亚洲色图在线视频| 97超碰欧美中文字幕| 国产精品欧美综合在线| 国产成a人亚洲| 久久久综合九色合综国产精品| 日av在线不卡| 日韩欧美卡一卡二| 久久精品99久久久| 精品理论电影在线观看| 久久精品国产网站| 久久久久久黄色| 国产成a人亚洲| 国产精品国产自产拍在线| av在线这里只有精品| 中文字幕在线不卡一区二区三区| 国产激情偷乱视频一区二区三区| 久久久久久久综合日本| 国产黄色成人av| 一色屋精品亚洲香蕉网站| 91在线视频观看| 洋洋av久久久久久久一区| 欧美激情中文字幕| 99久久精品久久久久久清纯| 亚洲欧洲综合另类在线| 欧美综合亚洲图片综合区| 奇米色一区二区三区四区| 日韩精品一区二区三区蜜臀| 国产乱子伦视频一区二区三区| 国产亚洲欧美在线| 91日韩一区二区三区| 亚洲成a人v欧美综合天堂| 欧美不卡123| 99免费精品在线观看| 亚洲一区二区三区自拍| 精品日产卡一卡二卡麻豆| 国产精品一区二区在线播放| 亚洲乱码一区二区三区在线观看| 欧美午夜电影在线播放| 另类小说欧美激情| 国产精品久久一级| 91精品欧美久久久久久动漫| 国产精品一区不卡| 亚洲精品成人在线| 26uuu亚洲婷婷狠狠天堂| 99久久综合精品| 日日摸夜夜添夜夜添精品视频| 欧美成人免费网站| 91久久久免费一区二区| 琪琪一区二区三区| 亚洲男人的天堂网| 久久综合久色欧美综合狠狠| 色av综合在线| 国产福利精品一区二区| 日日夜夜免费精品视频| 中文字幕欧美激情| 精品伦理精品一区| 精品视频1区2区| 97久久超碰国产精品| 久久精品国产99| 伊人婷婷欧美激情| 国产日韩综合av| 91精品国产黑色紧身裤美女| 精品对白一区国产伦| 欧美性xxxxx极品少妇| 国产九色精品成人porny| 午夜精品福利在线| 久久婷婷色综合| 欧美精选一区二区| 在线观看网站黄不卡| 国产精品亚洲人在线观看| 亚洲自拍偷拍九九九| 日韩午夜在线观看| 欧美在线免费观看亚洲| 91片黄在线观看| 国产精品自拍网站| 老司机精品视频导航| 日本成人在线一区| 一级精品视频在线观看宜春院 | 免费看欧美美女黄的网站| 亚洲精选视频免费看| 国产色爱av资源综合区| 日韩欧美成人激情| 欧美一区二区三区系列电影| 欧美在线观看视频一区二区| 一本一道久久a久久精品综合蜜臀| 丁香亚洲综合激情啪啪综合| 精品一区二区在线免费观看| 日本大胆欧美人术艺术动态| 亚洲高清免费视频| 午夜精品影院在线观看| 亚洲精品欧美专区| 一区二区三区在线免费视频| 一区二区在线观看免费| 国产电影一区二区三区| 久久99日本精品| 黑人精品欧美一区二区蜜桃| 免费成人结看片| 美女在线视频一区| 日本不卡视频在线观看| 美女久久久精品| 美女脱光内衣内裤视频久久影院| 日本亚洲三级在线| 狠狠色丁香久久婷婷综| 国产在线播精品第三| 国产精品资源站在线| 成人午夜在线免费| 91麻豆自制传媒国产之光| 91久久精品国产91性色tv| 在线观看成人小视频| 91麻豆精品国产91| 日韩欧美一区在线| 国产亚洲欧洲997久久综合| 国产精品久久99| 亚洲综合男人的天堂| 日本女人一区二区三区| 国产成人免费9x9x人网站视频| 成人国产精品免费观看| 欧美综合久久久| 精品国产一区二区三区久久久蜜月 | 国产精品美女www爽爽爽| 亚洲色图视频网| 图片区日韩欧美亚洲| 国产精品亚洲综合一区在线观看| 粗大黑人巨茎大战欧美成人| 色悠悠久久综合| 欧美一区二区免费观在线| 国产婷婷色一区二区三区四区| 国产精品三级在线观看| 亚洲va国产天堂va久久en| 黄页网站大全一区二区| 91在线你懂得| 91精品国产一区二区三区香蕉| 国产欧美一区二区精品久导航 | 欧美日韩卡一卡二| 久久久久国产精品麻豆ai换脸 | 日韩av中文在线观看| 国产高清亚洲一区| 欧美日韩大陆在线| 国产精品婷婷午夜在线观看| 天天综合色天天| 成人av网站在线观看免费| 欧美福利视频一区| 国产精品三级av在线播放| 天天综合网 天天综合色| av一本久道久久综合久久鬼色| 欧美一级生活片| 亚洲精品五月天| 波多野结衣在线一区| 精品国产免费视频| 亚洲国产精品久久久久婷婷884 | 欧美日韩免费电影| 国产精品久久夜| 国产在线观看免费一区| 6080yy午夜一二三区久久| 亚洲精品视频在线观看网站| 国产成人综合在线| 欧美一区二区久久| 五月激情丁香一区二区三区| 91啪九色porn原创视频在线观看| 国产三级精品三级在线专区| 蜜桃久久av一区| 91麻豆精品91久久久久同性| 亚洲成人动漫精品| 欧美亚洲免费在线一区| 国产精品国产三级国产| 国产精品亚洲а∨天堂免在线| 欧美一区二区三区喷汁尤物| 日韩黄色免费电影| 在线播放中文字幕一区| 亚洲午夜电影在线| 欧洲精品视频在线观看| 一区二区三区中文字幕| 91丝袜美腿高跟国产极品老师| 中文字幕免费不卡| 国产精品91xxx| 国产色一区二区| 成人自拍视频在线| 国产精品久久福利|