⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainframe.java

📁 本视频会议服务器端代码:根据自己定义的协议:能构穿透nat 需要java jmf框架 * 我开放源代码是为了更好的让java这门程序艺术更好的发展
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        
        
        
    }//GEN-LAST:event_formWindowOpened

    private void jMenuItem6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem6ActionPerformed
   
         if(JOptionPane.showConfirmDialog(this,"您是否确认退出运行的系统,请您确认","信息提示",JOptionPane.YES_NO_OPTION)==JOptionPane.OK_OPTION)
    {
              this.dispose();
              System.exit(0);
             
    };
       
    }//GEN-LAST:event_jMenuItem6ActionPerformed

    private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem4ActionPerformed
if(evt.getActionCommand()=="查看日志信息")
        {
             java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new getLog().setVisible(true);
                }
            });     
        }
    
    }//GEN-LAST:event_jMenuItem4ActionPerformed

    private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem3ActionPerformed
        if(evt.getActionCommand()=="配置日志信息") {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new setLog().setVisible(true);
                }
            });
        }
  
    }//GEN-LAST:event_jMenuItem3ActionPerformed

    private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
 if(evt.getActionCommand()=="查看服务器配置")
        {
             java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new getConfig().setVisible(true);
                }
            });     
        }
    }//GEN-LAST:event_jMenuItem2ActionPerformed

    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
      //菜单命令响应
        //打开配置文件
        if(evt.getActionCommand() =="配置服务器")
        {
             //JOptionPane.showMessageDialog(this,"");
            JOptionPane.showMessageDialog(this,"");
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new setConfig().setVisible(true);
                }
            });     
        }
       
        
        
        
       
    }//GEN-LAST:event_jMenuItem1ActionPerformed

    private void jMenuItem1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jMenuItem1MouseClicked
// 配置服务器
        
        
    }//GEN-LAST:event_jMenuItem1MouseClicked
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
       
    }
    
    // 变量声明 - 不进行修改//GEN-BEGIN:variables
    private javax.swing.JButton jBstartServer;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton10;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JButton jButton5;
    private javax.swing.JButton jButton7;
    private javax.swing.JButton jButton8;
    private javax.swing.JButton jButton9;
    private javax.swing.JList jLClient;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenu jMenu3;
    private javax.swing.JMenu jMenu4;
    private javax.swing.JMenu jMenu5;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JMenuItem jMenuItem4;
    private javax.swing.JMenuItem jMenuItem5;
    private javax.swing.JMenuItem jMenuItem6;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JProgressBar jPstat;
    private javax.swing.JScrollPane jSClient;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTextArea jTJVM;
    private javax.swing.JTextArea jTResult;
    // 变量声明结束//GEN-END:variables
 
    //获取命令的内部检测类 随时检测服务器的获取命令情况
    class checkData implements Runnable
    {
        public receiveMsg data =null;
        public checkData(receiveMsg data)
        {
            this.data = data;
        }
        public void run()
        {
            jTResult.setText("监视线程启动成功..............\r\n");
           // 提示: 多线程启动监视以后 出现屏幕闪烁现象 //
            jTResult.setText("正常启动"+this.data.toString());
            
        }
    }
    //检测虚拟机的情况线程
   class checkJVM implements Runnable
    {
      
        public checkJVM()
        {
         
        }
        public void run()
        {
            jTResult.setText("监视虚拟机线程启动成功..............\r\n");
           jTJVM.setText("虚拟机检测已经打开.....");
          
           
        }
    } 
   
  //  端口:6100  
 
   class Clientlist implements Runnable
    {
      public MainFrame mainFrame = null;
      public Vector ClientList;
      Vector vecSocket = new Vector();
        public Clientlist(Vector ClientList,MainFrame mainFrame)
        {
            this.mainFrame = mainFrame;
            this.ClientList = ClientList;          
        }
        public void sendCmd(InetAddress inet,int port,String cmd)
        {
            
            DatagramPacket pack = new DatagramPacket(cmd.getBytes(),cmd.length(),inet,port);
            try {
               
                (new DatagramSocket()).send(pack);
                
            
            } catch (SocketException ex) {
                ex.printStackTrace();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        public synchronized void run()
        {
            String[] str = {"","",""};
            jLClient.setListData(str);
            try
            {
            
            ServerSocket serList   = new ServerSocket(6100,100,InetAddress.getLocalHost());
            serList.setSoTimeout(3000);
            boolean bret = false;
            while(true)  //服务器维护一个客户端的列表
           {
                try{
                    
                Socket sock =  serList.accept();
                ClientList.add(((InetSocketAddress)sock.getRemoteSocketAddress()).getAddress().getHostAddress()+":"+((InetSocketAddress)sock.getRemoteSocketAddress()).getPort());
                sock.getOutputStream().write("serverOK".getBytes());
                sock.setSoTimeout(2000);
                vecSocket.add(sock);
             //   this.sendCmd(InetAddress.getLocalHost().getByName(vecSocket.get(0).toString()));
               jLClient.setListData(ClientList.toArray());  

               
               for(int i = 0;i<vecSocket.size();i++) {    //发送心跳测试 如果客户端断开了连接 服务器关闭连接 或者时接收 或者检测
               
                   String[] strs = ((String)ClientList.get(i)).split(":");
                   this.sendCmd(InetAddress.getByName(strs[0]),6100,"ClientTable&"+strs[0]+"&"+strs[1]);  //给每个客户端发送客户连接
                   System.out.println("客户端的信息已经发送到了客户列表"+Integer.parseInt(strs[1]));
                  
                 
                   //  this.sendCmd(((InetSocketAddress)sock.getRemoteSocketAddress()).getAddress(),((InetSocketAddress)sock.getRemoteSocketAddress()).getPort(),"ClientTable&"+((InetSocketAddress)sock.getRemoteSocketAddress()).getAddress()+"&"+((InetSocketAddress)sock.getRemoteSocketAddress()).getPort());
                 //  String[] str = ((String)ClientList.get(i)).
               }
             //维护连接的向量  
                }catch(java.net.SocketTimeoutException e)
                {
                    System.out.println("暂时没有连接");
                }catch(java.net.SocketException e)
                {
                    System.out.println("底层异常");
                }finally
                {
                    for(int i =0;i<vecSocket.size();i++) {    //发送心跳测试 如果客户端断开了连接 服务器关闭连接 或者时接收 或者检测
                        
                        try{
                            
                            if(((Socket)vecSocket.get(i)).getInputStream().read() == -1) {
                                
                            }
                        }catch(java.net.SocketTimeoutException e) {
                           
                            vecSocket.remove(i);
                            ClientList.remove(i);
                            System.out.println("关闭了套接"+i);
                        }
                    }
                    //向客户发送新的向量
                    jLClient.setListData(ClientList.toArray());
                    System.out.println("数量:"+ClientList.size()+"数量:"+vecSocket.size());
                }
                
                    
                }
               
           
        }catch(UnknownHostException e)
        {
            System.out.println(e.toString());
        }catch(IOException e)
        {
             System.out.println(e.toString());
        }
            
        }
    }
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -