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

📄 frame1.java~24~

📁 简单的TCP UDP通信源程序,已经在本机上实践通过.
💻 JAVA~24~
字号:
package tcp;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JRadioButton;
import javax.swing.JToggleButton;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2007</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class Frame1 extends JFrame {
    JPanel contentPane;
    JLabel jLabel1 = new JLabel();
    JRadioButton jRadioButton1 = new JRadioButton();
    JRadioButton jRadioButton2 = new JRadioButton();
    JButton jButton1 = new JButton();
    JButton jButton2 = new JButton();
    JLabel jLabel2 = new JLabel();
    JLabel jLabel3 = new JLabel();
    JLabel jLabel4 = new JLabel();
    JLabel jLabel5 = new JLabel();
    JTextField jTextField1 = new JTextField();
    JTextField jTextField2 = new JTextField();
    JTextField jTextField3 = new JTextField();
    JScrollPane jScrollPane1 = new JScrollPane();
    JTextArea jTextArea1 = new JTextArea();
    String inbuf;
    ServerSocket socket1;
    Socket insocket1,socket2;
    BufferedReader in1;
    PrintWriter out1;
    tcpserver t1;
    tcpclient t2;
    JButton jButton3 = new JButton();

    public Frame1() {
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    /**
     * Component initialization.
     *
     * @throws java.lang.Exception
     */
    private void jbInit() throws Exception {
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(null);
        setSize(new Dimension(544, 423));
        setTitle("Frame Title");
        jLabel1.setText("TCP通信程序");
        jLabel1.setBounds(new Rectangle(23, 12, 126, 21));
        jRadioButton1.setText("服务器端");
        jRadioButton1.setBounds(new Rectangle(21, 40, 86, 23));
        jRadioButton2.setText("客户端");
        jRadioButton2.setBounds(new Rectangle(118, 41, 70, 23));
        jButton1.setText("结束连接");
        jButton2.setBounds(new Rectangle(438, 338, 84, 23));
        jButton2.setText("发送");
        jLabel2.setText("连接状态");
        jLabel2.setBounds(new Rectangle(239, 45, 66, 17));
        jLabel3.setText("连接主机IP");
        jLabel3.setBounds(new Rectangle(23, 78, 77, 24));
        jLabel4.setText("接收到的信息");
        jLabel4.setBounds(new Rectangle(24, 120, 76, 21));
        jLabel5.setText("发送信息");
        jLabel5.setBounds(new Rectangle(30, 341, 63, 19));
        jTextField1.setBounds(new Rectangle(309, 43, 211, 20));
        jTextField3.setBounds(new Rectangle(102, 341, 328, 20));
        jScrollPane1.setBounds(new Rectangle(105, 116, 326, 211));
        jButton2.addActionListener(new Frame1_jButton2_actionAdapter(this));
        jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
        jTextField2.setBounds(new Rectangle(102, 82, 328, 20));
        jButton1.setBounds(new Rectangle(438, 121, 84, 23));
        jButton3.setBounds(new Rectangle(438, 79, 81, 23));
        jButton3.setText("建立连接");
        jButton3.addActionListener(new Frame1_jButton3_actionAdapter(this));
        contentPane.add(jLabel1, null);
        contentPane.add(jRadioButton1);
        contentPane.add(jRadioButton2);
        contentPane.add(jLabel2);
        contentPane.add(jTextField1);
        contentPane.add(jTextField3);
        contentPane.add(jLabel5);
        contentPane.add(jButton2);
        contentPane.add(jLabel4);
        contentPane.add(jScrollPane1);
        contentPane.add(jLabel3);
        contentPane.add(jTextField2);
        contentPane.add(jButton1);
        contentPane.add(jButton3);
        jScrollPane1.getViewport().add(jTextArea1);
        t1=new tcpserver();
        t2=new tcpclient();
    }



    public void jButton2_actionPerformed(ActionEvent e) {
             out1.write(jTextField3.getText()+"\n");
             out1.flush();
             jTextField3.setText("");
    }

    public void jButton1_actionPerformed(ActionEvent e) {
        try{//关闭连接
            if (jRadioButton1.isSelected() == true) {
                insocket1.close();
                jTextField1.setText("离线!");
                jButton2.setEnabled(false);
                jButton1.setEnabled(false);
            } else {
                socket2.close();
                jTextField1.setText("离线!");
                jButton2.setEnabled(false);
                jButton1.setEnabled(false);
            }
        }
        catch(Exception e2){jTextField1.setText("发生错误");
         }
     }

    public void jButton3_actionPerformed(ActionEvent e) {
        try {
                    if (jRadioButton1.isSelected() == true) {
                        inbuf = "";
                        jTextField3.setText("");
                        t1.start();
                    } else {
                        inbuf = "";
                        jTextField3.setText("");
                        t2.start();
                    }
                } catch (Exception e2) {
                    jTextField1.setText("发生错误");
        }
    }

    class tcpserver extends Thread{
        public tcpserver(){}
        public void run(){
            //String str1;
            try{jButton3.setEnabled(false);
                jTextField1.setText("正在等待连接!");
                jTextField2.setText(InetAddress.getLocalHost().getHostAddress());
                socket1=new ServerSocket(21);
                insocket1=socket1.accept();
                in1=new BufferedReader(new InputStreamReader(insocket1.getInputStream()));
                out1=new PrintWriter(insocket1.getOutputStream(),true);
                while(true)
                    //接收
              {  if(socket1.isBound()==true)
              {jTextField1.setText("正在连接中!");
              jButton2.setEnabled(true);
              jButton1.setEnabled(true);
              break;
              }
              }
              while(true)
                {inbuf=in1.readLine();
                if(inbuf.length()>0)
                {jTextArea1.append(inbuf+"\n");
                }
                }
            }
            catch(Exception e){}
        }
    }
    class tcpclient extends Thread{
       public tcpclient(){}
       public void run(){
           try{
               jButton3.setEnabled(false);
               jTextField1.setText("正在等待连接!");
               socket2=new Socket();
               socket2.connect(new InetSocketAddress(jTextField2.getText(),21),5000);
               in1=new BufferedReader(new InputStreamReader(socket2.getInputStream()));
                out1=new PrintWriter(socket2.getOutputStream(),true);
                while(true)
               //接收
                {  if(socket2.isBound()==true)
                 {jTextField1.setText("正在连接中!");
                 jButton2.setEnabled(true);
                 jButton1.setEnabled(true);
                  break;
                   }
               }
            inbuf="";
            while(true)
            {inbuf=in1.readLine();
            if(inbuf.length()>0)
            {jTextArea1.append(inbuf+"\n");
             }
           }
        }
           catch(Exception e){}
       }
   }

}


class Frame1_jButton3_actionAdapter implements ActionListener {
    private Frame1 adaptee;
    Frame1_jButton3_actionAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jButton3_actionPerformed(e);
    }
}


class Frame1_jButton1_actionAdapter implements ActionListener {
    private Frame1 adaptee;
    Frame1_jButton1_actionAdapter(Frame1 adaptee) {
     this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
    adaptee.jButton1_actionPerformed(e);
    }
}


class Frame1_jButton2_actionAdapter implements ActionListener {
    private Frame1 adaptee;
    Frame1_jButton2_actionAdapter(Frame1 adaptee) {
    this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
    adaptee.jButton2_actionPerformed(e);
    }
}

⌨️ 快捷键说明

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