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

📄 icqframe.java

📁 java
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
        );
        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField1ActionPerformed
                          send(); // TODO 将在此处添加您的处理代码:
    }//GEN-LAST:event_jTextField1ActionPerformed

    private void jLabel2MousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel2MousePressed
                    // TODO 将在此处添加您的处理代码:
    }//GEN-LAST:event_jLabel2MousePressed

    private void jList1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jList1MouseClicked
                        

   int index;
   if (evt.getClickCount() == 2)
   {
     index = jList1.locationToIndex(evt.getPoint());  
     String tmp = (String)model.getElementAt(index);
     if (tmp!=null){
         try {
             status = 1;
       /* String kk = "d[sfds]login";
        if (kk.endsWith("login"))
       {model.addElement(kk.substring(kk.indexOf("[")+1,kk.lastIndexOf("]")));
       jList1.setModel(model);}*/
     
      String messag = "con"+my_name +  "[" + InetAddress.getLocalHost() + "] LanICQ " + group 
+ jTextField1.getText() ;
      DatagramPacket hi = new DatagramPacket(messag.getBytes(),
        messag.getBytes().length, group, 4000);
      socket.send(hi);
      
      // new ReaderThread().start();
        new server().start();
        
    }catch(Exception ex) {
      jTextArea1.append("无法连接"+tmp+":" + ex + "\n");
	  ex.printStackTrace();
    }
        
     }
     //new server.start();
     //jCheckBox1.set
   }

    }//GEN-LAST:event_jList1MouseClicked
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new icqframe().setVisible(true);
                 
            }
        });
    }
   
 void join() {
     
    try {
      jTextArea1.append("尝试进入LanICQ...\n");
      String ip = "225.0.0.1";
      group = InetAddress.getByName(ip);
      socket = new MulticastSocket(4000);
      socket.joinGroup(group);
      String message ="log:"+ my_name +  "[" + InetAddress.getLocalHost() + "] LanICQ "  + jTextField1.getText();
      DatagramPacket hi = new DatagramPacket(message.getBytes(),
        message.getBytes().length, group, 4000);
      socket.send(hi);
      new ReaderThread().start();
    }catch(Exception ex) {
      jTextArea1.append("无法进入聊天室:" + ex + "\n");
	  ex.printStackTrace();
    }
  }   
 
  class ReaderThread extends Thread {

    public void run() {
      while(socket != null) {
        try {
          byte[] buf = new byte[256];
          DatagramPacket recv = new DatagramPacket(buf, buf.length);
          socket.receive(recv);
          
          m = new String(recv.getData());
          jTextArea1.append("\n"+m);
          if (m.startsWith("log")){
                 usr = m.substring(4,m.indexOf("["));
                 ip  = m.substring(m.indexOf("[")+4,m.lastIndexOf("]"));
                 hash.put(usr,ip);
                 model.addElement(usr);
                 jList1.setModel(model);
                 jTextArea1.append(ip);
          }
          else if (m.startsWith("con"))
          {
                 usr = m.substring(4,m.indexOf("["));
                 ip  = m.substring(m.indexOf("[")+4,m.lastIndexOf("]"));
                 if ( status == 0) {
                     new client().start();status = 0; }
          }
           
        }catch(Exception ex) {
        }
      }
    }

  }
  class client extends Thread{
  
  public void run(){
        
        ClientFram  c  =  new ClientFram(ip);
  
  }
  }
  class server extends Thread{
      public void run(){
       
      ServerFrame s   =  new ServerFrame();
      }
  }
  
  
  
  void send() {
    if(socket == null) return;
    try {
        
        //String ip = "225.0.0.1";
      //group = InetAddress.getByName(ip);
        String message ="cat:"+ my_name + "[" + InetAddress.getLocalHost() + "] :"+jTextField1.getText();
        DatagramPacket hi = new DatagramPacket(message.getBytes(),
        message.getBytes().length, group, 4000);
        socket.send(hi);
	jTextField1.requestFocus();
	 jTextField1.selectAll();
    }catch(Exception ex) {
      jTextArea1.append("无法发送消息:" + ex + "\n");
    }
  }
    
   // private  group  all  ;
    private  DefaultListModel model = new DataModel();
    private  String m;
    private  String  my_name;
    private  String  tmp;
    private  int     status = 0;
    private  MulticastSocket socket = null;
    private  DatagramSocket udpsocket = null; 
    private  DatagramPacket udppacket;
    private  InetAddress group = null;
    private  Hashtable hash  = new Hashtable();
    private  String usr = "服务器";
    private  String  ip;
   // private  Receiver  receive;
    // 变量声明 - 不进行修改//GEN-BEGIN:variables
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JList jList1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextField jTextField1;
    // 变量声明结束//GEN-END:variables
    
}

⌨️ 快捷键说明

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