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

📄 frame1.java~8~

📁 这是我做的JAVA的socket网络通信源码
💻 JAVA~8~
字号:
package socketserver;import java.net.*;import java.io.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Frame1 extends JFrame implements Runnable {  JPanel contentPane;  JScrollPane jScrollPane1 = new JScrollPane();  JTextArea jTextArea1 = new JTextArea();  JLabel jLabel1 = new JLabel();  JTextField jTextField1 = new JTextField();  JButton jButton1 = new JButton();  JButton jButton2 = new JButton();//Frame1 frame = new Frame1();  Socket socket;  ServerSocket serversocket;  BufferedReader bufferedReader;//客戶端消息緩沖區  PrintWriter printWriter;//服務器端消息緩沖區  private class GetInfo implements Runnable{   //定義一個內部類,接受消息   public void run()   {   String str;   try{    str=bufferedReader.readLine();//從bufferedreader讀入一行    while(str!="exit!"){   jTextArea1.append("客戶端消息:"+str+"\n");   str=bufferedReader.readLine();//繼續讀入客戶端消息} bufferedReader.close();//關閉緩沖區 printWriter.close();// socket.close();//關閉socket serversocket.close();//關閉serversocket  }catch(Exception e){jTextArea1.append(e.toString()+"\n");}   }  }  //Construct the frame  public Frame1() {    enableEvents(AWTEvent.WINDOW_EVENT_MASK);    try {      jbInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  //Component initialization  private void jbInit() throws Exception  {    contentPane = (JPanel) this.getContentPane();    contentPane.setLayout(null);    this.setSize(new Dimension(400, 300));    this.setTitle("服務器端");    jScrollPane1.setBounds(new Rectangle(15, 5, 371, 182));    jTextArea1.setText("");    jLabel1.setText("發送消息");    jLabel1.setBounds(new Rectangle(17, 198, 52, 20));    jTextField1.setText("");    jTextField1.setBounds(new Rectangle(76, 197, 309, 28));    jTextField1.addKeyListener(new Frame1_jTextField1_keyAdapter(this));    jButton1.setBounds(new Rectangle(20, 255, 105, 28));    jButton1.setEnabled(false);    jButton1.setText("發送");    jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));    jButton2.setBounds(new Rectangle(189, 257, 112, 27));    jButton2.setText("退出");    jButton2.addActionListener(new Frame1_jButton2_actionAdapter(this));    contentPane.add(jScrollPane1, null);    contentPane.add(jLabel1, null);    contentPane.add(jTextField1, null);    contentPane.add(jButton1, null);    contentPane.add(jButton2, null);    jScrollPane1.getViewport().add(jTextArea1, null);   // Frame1 frame = new Frame1();    Thread t=new Thread(this);    t.start();  }  //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);    }  }  public void run() {    /**@todo Implement this java.lang.Runnable method*/    //throw new java.lang.UnsupportedOperationException("Method run() not yet implemented.");  try  {   //建立端口號為1000的服務器的端口   serversocket=new ServerSocket(1000);   socket=serversocket.accept();//接收客戶端   bufferedReader=new BufferedReader(new InputStreamReader(socket.getInputStream()));// 建立緩沖區   printWriter=new PrintWriter(socket.getOutputStream());   if(socket!=null)   {    jTextArea1.append("客戶端以連接!\n");    jButton1.setEnabled(true);   }   GetInfo getinfo=new GetInfo();   Thread t=new Thread(getinfo);//創建接收客戶端消息的線程   t.start();  }catch(Exception e){jTextArea1.append(e.toString()+"\n");}  }  void jButton1_actionPerformed(ActionEvent e) {  printWriter.println(jTextField1.getText());    //讀入jtextfield1中的文本    printWriter.flush();    //將jTextField1中的文本信息顯示到jTextArea1中    jTextArea1.append("服務器端信息:"+jTextField1.getText());    jTextField1.setText("");  }  void jButton2_actionPerformed(ActionEvent e) {//退出    try{     jTextArea1.append("服務器退出!\n");     printWriter.println("exit!");     printWriter.flush();    }catch(Exception err){jTextArea1.append(err.toString()+"\n");}finally{System.exit(0);}  }  void jTextField1_keyPressed(KeyEvent e) {if(e.getKeyChar()==KeyEvent.VK_ENTER)    {    try{    jTextArea1.append("服務器退出!\n");    printWriter.println("exit!");    printWriter.flush();    }catch(Exception err){jTextArea1.append(e.toString()+"\n");}finally{System.exit(0);}    }  }}class Frame1_jButton1_actionAdapter implements java.awt.event.ActionListener {  Frame1 adaptee;  Frame1_jButton1_actionAdapter(Frame1 adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jButton1_actionPerformed(e);  }}class Frame1_jButton2_actionAdapter implements java.awt.event.ActionListener {  Frame1 adaptee;  Frame1_jButton2_actionAdapter(Frame1 adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jButton2_actionPerformed(e);  }}class Frame1_jTextField1_keyAdapter extends java.awt.event.KeyAdapter {  Frame1 adaptee;  Frame1_jTextField1_keyAdapter(Frame1 adaptee) {    this.adaptee = adaptee;  }  public void keyPressed(KeyEvent e) {    adaptee.jTextField1_keyPressed(e);  }}

⌨️ 快捷键说明

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