📄 mainframe.java
字号:
package udpclient;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.net.*;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2005</p> * <p>Company: </p> * @author not attributable * @version 1.0 */public class MainFrame extends JFrame { DatagramSocket socket; byte[] buf=new byte[1000]; DatagramPacket dp=new DatagramPacket(buf,buf.length); InetAddress serverHost; int serverPort; JPanel contentPane; JLabel jLabel1 = new JLabel(); JLabel jLabel2 = new JLabel(); JTextField jTextField1 = new JTextField(); JTextField jTextField2 = new JTextField(); JButton jButton1 = new JButton(); JButton jButton2 = new JButton(); JTextField jTextField3 = new JTextField(); JScrollPane jScrollPane1 = new JScrollPane(); JTextArea jTextArea1 = new JTextArea(); //Construct the frame public MainFrame() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //Component initialization private void jbInit() throws Exception { contentPane = (JPanel) this.getContentPane(); jLabel1.setFont(new java.awt.Font("Dialog", 0, 14)); jLabel1.setText("服务器IP"); jLabel1.setBounds(new Rectangle(14, 17, 72, 26)); contentPane.setLayout(null); this.setSize(new Dimension(405, 300)); this.setTitle("UDP-客户端"); jLabel2.setBounds(new Rectangle(185, 17, 41, 26)); jLabel2.setText("端口"); jLabel2.setFont(new java.awt.Font("Dialog", 0, 14)); jTextField1.setFont(new java.awt.Font("Dialog", 0, 14)); jTextField1.setText("127.0.0.1"); jTextField1.setBounds(new Rectangle(73, 17, 100, 26)); jTextField2.setBounds(new Rectangle(220, 17, 49, 26)); jTextField2.setText("6544"); jTextField2.setFont(new java.awt.Font("Dialog", 0, 14)); jButton1.setBounds(new Rectangle(280, 17, 106, 26)); jButton1.setFont(new java.awt.Font("Dialog", 0, 14)); jButton1.setText("连接服务器"); jButton1.addActionListener(new MainFrame_jButton1_actionAdapter(this)); jButton2.setText("发送信息"); jButton2.addActionListener(new MainFrame_jButton2_actionAdapter(this)); jButton2.setFont(new java.awt.Font("Dialog", 0, 14)); jButton2.setBounds(new Rectangle(280, 53, 106, 26)); jTextField3.setBounds(new Rectangle(14, 53, 254, 26)); jTextField3.setText("hello"); jTextField3.setFont(new java.awt.Font("Dialog", 0, 14)); jScrollPane1.setBounds(new Rectangle(13, 86, 370, 177)); jTextArea1.setText(""); contentPane.add(jLabel1, null); contentPane.add(jTextField1, null); contentPane.add(jLabel2, null); contentPane.add(jTextField2, null); contentPane.add(jButton1, null); contentPane.add(jTextField3, null); contentPane.add(jButton2, null); contentPane.add(jScrollPane1, null); jScrollPane1.getViewport().add(jTextArea1, null); } //Overridden so we can exit when window is closed protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } class ReadMessageThread extends Thread{ public void run(){ while(true){ try{ socket.receive(dp); } catch (IOException e1) { //捕捉可能产生的异常 jTextArea1.append("读端口信息出错\n"); } String rcvd=new String(dp.getData(),0,dp.getLength()); InetAddress ip=dp.getAddress(); int port=dp.getPort(); rcvd=rcvd+",from address:"+ip+",prot:"+port; jTextArea1.append("从服务器端读入如下的信息:"+rcvd+"\n"); } }} void jButton1_actionPerformed(ActionEvent e) { try{ serverHost=InetAddress.getByName(jTextField1.getText()); }catch(IOException e1){ jTextArea1.append("IP地址出错\n"); } serverPort=Integer.parseInt(jTextField2.getText());try { socket=new DatagramSocket(); jTextArea1.append("系统提示:客户端数据报套接字建立\n"); } catch (IOException e2) { //捕捉可能产生的异常 jTextArea1.append("端口打开出错\n"); } if (socket != null) { ReadMessageThread readThread=new ReadMessageThread(); readThread.start(); } } void jButton2_actionPerformed(ActionEvent e) { if (socket != null) { String str=jTextField3.getText(); jTextArea1.append("向服务器发送如下的信息:"+str+"\n"); buf=str.getBytes(); dp=new DatagramPacket(buf,buf.length,serverHost,serverPort); try{ socket.send(dp); } catch (IOException e3) { //捕捉可能产生的异常 jTextArea1.append("发送信息出错\n"); } }}}class MainFrame_jButton1_actionAdapter implements java.awt.event.ActionListener { MainFrame adaptee; MainFrame_jButton1_actionAdapter(MainFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton1_actionPerformed(e); }}class MainFrame_jButton2_actionAdapter implements java.awt.event.ActionListener { MainFrame adaptee; MainFrame_jButton2_actionAdapter(MainFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton2_actionPerformed(e); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -