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

📄 clieframe.txt

📁 本程序用java语言实现了socket通信客户端程序
💻 TXT
字号:
package sockproj;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.io.*;
import com.borland.jbcl.layout.*;
public class ClieFrame extends JFrame{
  JPane1 contentPane;
  XYLayout xYLayout1=new XYLayout();
  JButton jButton1=new JButton();
  JLabel jLabel1=new JLabel1();
  JTextField jTextField1=new JTextField();
  JButton jButton2=new JButton();
  JScrollPane jScollPane1=new JScollPane();
  JTextArea jTextArea1=new JTextArea();
  Socket Socket1;
  InputStream is;
  OutputStream os;
  BufferedReader br;
  PrintWriter pw;
  Thread t1=null;
  //构建界面
  public clieFrame(){
      enableEvents(AWTEvent.WINDOW_EVENT_MASK);
      try{
          jbInit();
      }
      catch(Exception e){
          e.printStackTrace();
      }
  }
  //组件初始化
  private void jbInit() throws Exception{
      contentPane=(JPane1)this.getContentPane();
      jButton1.setText("连接服务器");
      jButton1.addActionListener(new clieFrame_jButton1_actionListener(this));
      contentPane.setLayout(xYLayout1);
      this.setSize(new Dimension(400,300));
      this.setTitle("Frame Title");
      jLabel1.setText("消息");
      jTextField1.setText("jTextField1");
      jButton2.setText("发送");
      jButton2.addActionListener(new clieFrame_jButton2_actionAdapter(this));
      contentPane.setBorder(BorderFactory.createLoweredBevelBorder());
      jTextArea1.setText("jTextArea1");
      contentPane.add(jButton1,new XYConstrains(5,8,-1,-1));
      contentPane.add(jScrollPane1,new XYConstraints(7,47,385,246));
      contentPane.add(jButton2,new XYConstraints(319,8,-1,-1));
      contentPane.add(jTextField1,new XYConstraints(170,8,143,28));
      contentPane.add(jLabel1,new XYConstraints(113,11,-1,-1));
      jScrollPane1.getViewport().add(jTextArea1,null);
  }
  //关闭窗口时退出
  protected void processWindowEvent(WindowEvent e){
      super.processWindowEvent(e);
      if(e.getID()==WindowEvent.WINDOW_CLOSING){
          System.exit(0);
      }
  }
  class receiver implements Runnable{
      public receiver(){};
      public void run(){
          String str="";
          while(true){
              try{
                  str=br.readLine();
                  if(str!=null)
                      jTextArea1.append("from server:"+str+"\n");
              }
              catch(Exception e){
              }
          }
      }
  }//receiver
  void jButton1_actionPerformed(ActionEvent e){
      try{
          Socket1=new Socket(InetAddress.getLocalHost(),8080);
          JOptionPane.showMessageDialog(this,"连接成功");
      }
      catch(Exception e1){
          JOptionPane.showMessageDialog(this,"err:"+e1.toString());
      }
      try{
          jButton1.setEnabled(false);
          is=Socket1.getInputStream();
          os=Socket1.getOutputStream();
          br=new BufferedReader(new InputStreamReader(is));
          pw=new PrintWriter(os);
          t1=new Thread(new receiver());
          t1.start();
      }
      catch(Exception e1){
          JOptionPane.showMessageDialog(this,"err:"+e1.toString());
      }
  }
  void jButton2_actionPerformed(ActionEvent e){
      String str="";
      if(Socket1!=null){
          try{
              str=jTextField1.getText()+"\n";
              jTextArea1.append("to server:"+str);
              pw.write(str);
              pw.flush();
              if(str.equals("e\n")){
                  is.close();
                  os.close();
                  br.close();
                  pw.close();
                  Socket1.close();
                  jButton1.setEnabled(true);
              }
              jTextField1.setText("");
          }
          catch(Exception e1){
              JOptionPane.showMessageDialog(this,"err:"+e1.toString());
          }
      }
  }
}//clieFrame
  

⌨️ 快捷键说明

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