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

📄 lclient1.java

📁 实现简单聊天、群聊以及点对点文件传输,有兴趣的朋友可以拿去
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
            this.dispose();        }            }//GEN-LAST:event_jButton2ActionPerformed    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed        // TODO add your handling code here:        new Thread(new Runnable() {            public void run() {                try {                    String username = jTextField1.getText();                    String people = (String) jComboBox1.getSelectedItem();//取得发送对象                    if (people.equals("大家")) {                        DengLu.out.writeUTF("公共聊天:" + username + ">" + jTextArea3.getText());                        jTextArea3.setText(null);                    } else {                        DengLu.out.writeUTF("私人聊天:" + username + ">" + jTextArea3.getText() + "*" + people);                        int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);                             int minuts = Calendar.getInstance().get(Calendar.MINUTE);                             int second = Calendar.getInstance().get(Calendar.SECOND);                             jTextArea1.append("时间:" + hour + ":" + minuts + ":" + second + "\n");                         jTextArea1.append(username + ">" + jTextArea3.getText() + "\n");                        jTextArea3.setText(null);                    }                } catch (IOException ex) {                    Logger.getLogger(LClient1.class.getName()).log(Level.SEVERE, null, ex);                }            }        }).start();                                            }//GEN-LAST:event_jButton3ActionPerformed    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed        // TODO add your handling code here:        System.exit(0);    }//GEN-LAST:event_jButton4ActionPerformed    private void jTextArea3KeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTextArea3KeyPressed        // TODO add your handling code here:        if ((evt.getKeyCode()) == (KeyEvent.VK_ENTER)) {            new Thread(new Runnable() {                public void run() {                    try {                        String username = jTextField1.getText();                        String people = (String) jComboBox1.getSelectedItem();//取得发送对象                        if (people.equals("大家")) {                            DengLu.out.writeUTF("公共聊天:" + username + ">" + jTextArea3.getText());                            jTextArea3.setText(null); //发送消息后自动清空信息框                        } else {                            DengLu.out.writeUTF("私人聊天:" + username + ">" + jTextArea3.getText() + "*" + people);                            int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);                             int minuts = Calendar.getInstance().get(Calendar.MINUTE);                             int second = Calendar.getInstance().get(Calendar.SECOND);                             jTextArea1.append("时间:" + hour + ":" + minuts + ":" + second + "\n");                             jTextArea1.append(username + ">" + jTextArea3.getText() + "\n");                           jTextArea3.setText(null);                        }                    } catch (IOException ex) {                        Logger.getLogger(LClient1.class.getName()).log(Level.SEVERE, null, ex);                    }                }            }).start();        }    }//GEN-LAST:event_jTextArea3KeyPressed    private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton6ActionPerformed        // TODO add your handling code here:        new Thread(new Runnable() {            public void run() {        try {            // TODO add your handling code here:            if(jTextField2.getText().equals(""))           {                Message("请选择你要传输的文件!");                return;           }else if(jComboBox1.getSelectedItem().equals("大家"))           {               Message("不能将文件同时传输给在线用户!");               return;           }else if(jComboBox1.getSelectedItem().equals(jTextField1.getText()))           {               Message("文件不能传输给自己!");               return;           }            File file = new File(jTextField2.getText());            FileInputStream f = new FileInputStream(file);            String s = new String("文件传送!" + jTextField1.getText() + "*" + jComboBox1.getSelectedItem() + "*" + jTextField2.getText() + ">" + InetAddress.getLocalHost());            DengLu.out.writeUTF(s);            jTextArea1.append("发送文件给用户:" + jComboBox1.getSelectedItem() + "\n");           //创建网络服务器接受客户请求          ServerSocket ss = new ServerSocket(1111);          Socket client = ss.accept();           //创建网络输出流并提供数据包装器         OutputStream Out = client.getOutputStream();         OutputStream a = new DataOutputStream(new BufferedOutputStream(Out));                 //创建文件读取缓冲区         byte[] buf = new byte[2048];         int num = f.read(buf);         while(num != (-1)){//是否读完文件            a.write(buf,0,num);//把文件数据写到数组缓冲区            a.flush();//刷新缓冲区把数据写往接收端            num = f.read(buf);//继续从文件中读取数据         }            ss.close();         f.close();         a.close();      }catch(IOException ex){          Message("文件传输失败!");          return;      }        }        }).start();    }//GEN-LAST:event_jButton6ActionPerformed    private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton8ActionPerformed        // TODO add your handling code here:        new Thread(new Runnable() {            public void run() {        try {            // TODO add your handling code here:            String a = new String("开始接收!" + ren);            DengLu.out.writeUTF(a);            String I = ip.substring(ip.lastIndexOf("/") + 1);//ip = china-e2ffebca8/192.168.1.104            InetAddress IP = InetAddress.getByName(I);                       // 通过Socket连接文件服务器           Socket s=new Socket(IP,1111);           //创建网络接受流接受服务器文件数据            InputStream In=s.getInputStream();           InputStream in=new DataInputStream(new BufferedInputStream(In));                      File file=new File(jTextField3.getText() + ming);            file.createNewFile();//创建文件            RandomAccessFile f=new RandomAccessFile(file,"rw");           //创建缓冲区缓冲网络数据           byte[] buf=new byte[2048];           int num=in.read(buf);           jButton7.setEnabled(false);           jButton8.setEnabled(false);           jButton9.setEnabled(false);           jTextField3.setEnabled(false);           String b = new String("同意接收!" + ren);           DengLu.out.writeUTF(b);           jTextArea1.append("文件传输中,请稍候..." + "\n");           while(num!=(-1)){//是否读完所有数据           f.write(buf,0,num);//将数据写往文件           f.skipBytes(num);//顺序写文件字节           num=in.read(buf);//继续从网络中读取文件       }                     Message("文件接收完成!");          String str = new String("发送完成!" + ren);          DengLu.out.writeUTF(str);          in.close();          f.close();                                } catch (IOException ex) {            Message("没有需要接收的文件!");            return;        }   }        }).start();    }//GEN-LAST:event_jButton8ActionPerformed    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed        // TODO add your handling code here:        String wenjian;        int ii = jFileChooser1.showSaveDialog(this);        if(ii == jFileChooser1.APPROVE_OPTION)        {           wenjian =jFileChooser1.getCurrentDirectory() + "\\" + jFileChooser1.getSelectedFile().getName();            jTextField2.setText(wenjian);            jTextField2.setEnabled(false);        }    }//GEN-LAST:event_jButton5ActionPerformed    private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton7ActionPerformed        // TODO add your handling code here:        String lujing;        int ii = jFileChooser2.showSaveDialog(this);        if(ii == jFileChooser2.APPROVE_OPTION)        {           lujing =jFileChooser2.getSelectedFile().getPath() + "\\";            jTextField3.setText(lujing);            jTextField3.setEnabled(false);        }    }//GEN-LAST:event_jButton7ActionPerformed    private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton9ActionPerformed        try {                        String s = new String("拒绝接收!" + ren);            DengLu.out.writeUTF(s);            jButton7.setEnabled(false);            jButton8.setEnabled(false);            jButton9.setEnabled(false);            jTextField3.setEnabled(false);                   } catch (IOException ex) {//GEN-LAST:event_jButton9ActionPerformed            Logger.getLogger(LClient1.class.getName()).log(Level.SEVERE, null, ex);        }    }        /**     * @param args the command line arguments     */    public static void main(String args[]) {        java.awt.EventQueue.invokeLater(new Runnable() {            public void run() {                new LClient1().setVisible(false);            }        });    }        // Variables declaration - do not modify//GEN-BEGIN:variables    private javax.swing.JButton jButton1;    private javax.swing.JButton jButton2;    private javax.swing.JButton jButton3;    private javax.swing.JButton jButton4;    private javax.swing.JButton jButton5;    private javax.swing.JButton jButton6;    private javax.swing.JButton jButton7;    private javax.swing.JButton jButton8;    private javax.swing.JButton jButton9;    private javax.swing.JComboBox jComboBox1;    private javax.swing.JFileChooser jFileChooser1;    private javax.swing.JFileChooser jFileChooser2;    private javax.swing.JLabel jLabel1;    private javax.swing.JLabel jLabel2;    private javax.swing.JLabel jLabel3;    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.JPanel jPanel6;    private javax.swing.JPanel jPanel7;    private javax.swing.JScrollPane jScrollPane1;    private javax.swing.JScrollPane jScrollPane2;    private javax.swing.JScrollPane jScrollPane3;    private javax.swing.JScrollPane jScrollPane4;    private javax.swing.JTextArea jTextArea1;    private javax.swing.JTextArea jTextArea2;    private javax.swing.JTextArea jTextArea3;    private javax.swing.JTextArea jTextArea4;    private javax.swing.JTextField jTextField1;    private javax.swing.JTextField jTextField2;    private javax.swing.JTextField jTextField3;    // End of variables declaration//GEN-END:variables    }

⌨️ 快捷键说明

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