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

📄 mainframe.java

📁 局域网内实现的五子棋和简单的聊天工具。
💻 JAVA
字号:
package udpserver;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 {  byte[] buf=new byte[1000];  //字节数组成员属性,用于发送和接收数据  DatagramPacket dp=new DatagramPacket(buf,buf.length);  //数据报包  DatagramSocket socket;  //数据报套接字  JPanel contentPane;  JLabel jLabel1 = new JLabel();  JTextField jTextField1 = new JTextField();  JButton jButton1 = new JButton();  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.setRequestFocusEnabled(true);    jLabel1.setText("监听端口");    jLabel1.setBounds(new Rectangle(24, 19, 59, 26));    contentPane.setLayout(null);    this.setSize(new Dimension(335, 300));    this.setTitle("UDP-服务器端");    jTextField1.setFont(new java.awt.Font("Dialog", 0, 14));    jTextField1.setText("6544");    jTextField1.setBounds(new Rectangle(89, 19, 101, 26));    jButton1.setBounds(new Rectangle(216, 19, 93, 26));    jButton1.setFont(new java.awt.Font("Dialog", 0, 14));    jButton1.setText("启动系统");    jButton1.addActionListener(new MainFrame_jButton1_actionAdapter(this));    jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);    jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);    jScrollPane1.setBounds(new Rectangle(24, 61, 282, 202));    jTextArea1.setText("");    contentPane.add(jLabel1, null);    contentPane.add(jTextField1, null);    contentPane.add(jButton1, 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类型                                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");                                String echo="服务器已接收到来自"+ip+"的信息";                                //将反馈信息字符串转换为字节数组                                buf=echo.getBytes();                                //构建发送信息数据报包                                dp=new DatagramPacket(buf,buf.length,ip,port);                                try{                                        socket.send(dp);  //发送数据报包                            } catch (IOException e2) {   //捕捉可能产生的异常                                      jTextArea1.append("发送信息出错\n");                              }                        }                }        }  void jButton1_actionPerformed(ActionEvent e) {    try{            //建立数据报套接字            socket=new DatagramSocket(Integer.parseInt(jTextField1.getText()));          jTextArea1.append("系统提示:服务器端数据报建立\n");       } catch (IOException e1) {   //捕捉可能产生的异常                 jTextArea1.append("服务器端口打开出错\n");       }       if (socket != null) {            //启动读信息线程            ReadMessageThread readThread=new ReadMessageThread();            readThread.start();    }  }}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);  }}

⌨️ 快捷键说明

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