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

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

?? chatserver.java~29~

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


}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产尤物一区二区在线| 国产精品久久久久久久久免费丝袜 | 国产亚洲精品福利| 欧美精品日韩一区| 欧美一区二视频| 制服丝袜在线91| 日韩欧美成人一区| 久久久一区二区| 日韩欧美一级在线播放| 久久人人爽爽爽人久久久| 国产欧美日韩在线看| 国产欧美视频一区二区三区| 国产亚洲成年网址在线观看| 日本一区二区三区高清不卡| 国产欧美精品区一区二区三区| 国产欧美一区二区精品久导航| 国产精品家庭影院| 亚洲成在线观看| 国产一区二区三区免费在线观看| 成人av综合在线| 91黄色免费看| 欧美一级夜夜爽| 欧美高清在线视频| 亚洲综合久久久| 日本少妇一区二区| 高清不卡一区二区| 欧美人妖巨大在线| 国产丝袜欧美中文另类| 亚洲一区二区在线视频| 乱一区二区av| 97se亚洲国产综合自在线| 欧美一级黄色录像| 国产精品美日韩| 日av在线不卡| 91麻豆文化传媒在线观看| 欧美精品欧美精品系列| 欧美经典一区二区三区| 亚洲精选视频免费看| 精品一区二区三区在线视频| 色av成人天堂桃色av| 久久人人爽爽爽人久久久| 亚洲综合免费观看高清完整版在线| 韩国精品在线观看| 在线看日本不卡| 国产精品久久久久久久久久久免费看 | 欧美日韩中文字幕一区二区| 久久久久久影视| 亚洲成人av在线电影| 成人高清视频免费观看| 欧美va亚洲va在线观看蝴蝶网| 国产精品看片你懂得| 激情综合色综合久久| 欧美嫩在线观看| 国产精品嫩草影院com| 精品在线免费观看| 欧洲亚洲精品在线| 亚洲欧美日韩中文播放| 国产99久久久国产精品潘金| 欧美一区欧美二区| 亚洲成精国产精品女| 91欧美激情一区二区三区成人| 久久九九影视网| 精一区二区三区| 精品日韩99亚洲| 久久国产精品第一页| 欧美一级视频精品观看| 日韩中文字幕1| 欧美在线一二三四区| 亚洲欧洲日韩av| 成人爽a毛片一区二区免费| 久久蜜桃av一区二区天堂| 美女免费视频一区| 欧美va亚洲va在线观看蝴蝶网| 蜜桃一区二区三区四区| 日韩一级免费观看| 免费的国产精品| 日韩欧美国产精品一区| 激情综合亚洲精品| 久久尤物电影视频在线观看| 韩国视频一区二区| 久久久久久久久久美女| 国产精品一级片| 中文一区二区完整视频在线观看| 国产精品影视网| 国产精品欧美一级免费| 色综合天天性综合| 亚洲国产一区二区三区青草影视 | 奇米精品一区二区三区在线观看 | 国产成人亚洲综合a∨婷婷图片| 久久精品视频网| 9久草视频在线视频精品| 亚洲精品菠萝久久久久久久| 欧美怡红院视频| 青青草国产精品97视觉盛宴| 精品久久久久久久久久久久久久久 | 精品女同一区二区| 国产成人午夜99999| 亚洲伦在线观看| 欧美日韩不卡在线| 黑人精品欧美一区二区蜜桃| 中文文精品字幕一区二区| 欧洲精品中文字幕| 国产在线精品视频| 一区二区三区不卡在线观看| 欧美一级二级三级乱码| 成人午夜伦理影院| 亚洲综合色区另类av| 精品区一区二区| 色呦呦日韩精品| 伦理电影国产精品| 专区另类欧美日韩| 欧美xfplay| 色婷婷av一区二区三区软件| 麻豆精品视频在线| 亚洲欧美成人一区二区三区| 日韩一区二区在线看片| av一区二区不卡| 久久99久久99| 亚洲综合免费观看高清完整版| 久久日韩精品一区二区五区| 91黄色激情网站| 成人精品视频一区二区三区 | 99精品欧美一区| 免费在线观看一区二区三区| 国产精品久久久久久久午夜片 | 国产sm精品调教视频网站| 亚洲成人av一区二区三区| 国产亚洲一区二区在线观看| 91国在线观看| 99re视频精品| 国产91精品露脸国语对白| 秋霞电影网一区二区| 亚洲不卡av一区二区三区| 中文字幕亚洲视频| 欧美激情在线观看视频免费| 日韩一区二区在线观看视频| 欧美午夜精品电影| 99re8在线精品视频免费播放| 国产一区二区三区黄视频| 首页综合国产亚洲丝袜| 亚洲国产精品久久艾草纯爱| 日韩美女久久久| 国产精品灌醉下药二区| 欧美国产精品中文字幕| 国产精品麻豆欧美日韩ww| 久久综合资源网| 精品国产一区二区三区久久影院 | 欧美日韩电影一区| 在线观看91视频| 欧洲精品在线观看| 欧美性受xxxx黑人xyx| 欧美一区永久视频免费观看| 欧美日韩综合不卡| 91精品在线一区二区| 欧美日韩日日骚| 欧美肥妇bbw| 欧美一级搡bbbb搡bbbb| 欧美一区二区三区视频| 6080国产精品一区二区| 欧美一区二区三区在线| 在线综合视频播放| 日韩亚洲国产中文字幕欧美| 日韩欧美的一区二区| 国产丝袜在线精品| 国产精品伦一区| 亚洲制服丝袜一区| 日韩高清在线一区| 国产一区二区三区四| 成人高清视频在线| 欧美性猛交xxxxxxxx| 在线91免费看| 久久久电影一区二区三区| 综合在线观看色| 一区二区三区 在线观看视频| 天堂蜜桃一区二区三区| 国内精品不卡在线| 91色乱码一区二区三区| 51精品秘密在线观看| 国产日产欧美一区| 一区二区三区在线观看国产| 美女一区二区在线观看| 国产91对白在线观看九色| 欧洲一区在线观看| 久久久精品中文字幕麻豆发布| 亚洲视频图片小说| 久久99久久99| 91黄色小视频| 欧美sm极限捆绑bd| 亚洲精品少妇30p| 看电视剧不卡顿的网站| 99久久国产免费看| 日韩欧美在线123| 亚洲精品免费看| 国产麻豆9l精品三级站| 欧美三级中文字幕在线观看| 国产亚洲美州欧州综合国| 五月激情六月综合| 不卡免费追剧大全电视剧网站| 欧美精品三级在线观看| 中文字幕中文在线不卡住|