socket 连接器

来源:互联网 发布:开淘宝保证金怎么交 编辑:程序博客网 时间:2024/04/30 05:41


import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.URL;
import java.net.UnknownHostException;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;


public class MainFrame extends JFrame {

 
 private static final long serialVersionUID = -3786109545086465267L;
 
 BorderLayout borderLayout1 = new BorderLayout();
    JPanel jPanel1 = new JPanel();
    JLabel jLabel1 = new JLabel();
    JTextField jTextField1 = new JTextField();
    JButton jButton1 = new JButton();
    JLabel jLabel2 = new JLabel();
    JTextArea jTextArea1 = new JTextArea();
    TitledBorder titledBorder1 = new TitledBorder("");
    JLabel jLabel3 = new JLabel();
    JTextArea jTextArea2 = new JTextArea();
    public MainFrame() {
        try {
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
     
     setBounds(100, 100, 740, 740);
     setDefaultCloseOperation(MainFrame.EXIT_ON_CLOSE);
     URL url = getClass().getResource("logo.jpg");
     setIconImage(getToolkit().createImage(url));
     
        getContentPane().setLayout(borderLayout1);
        this.setTitle("欢迎使用Socket连接器");
        jTextArea1.setBackground(Color.white);
        jTextArea1.setBorder(BorderFactory.createLoweredBevelBorder());
        jTextArea1.setDebugGraphicsOptions(0);
        jLabel3.setText("返回内容:");
        jLabel3.setBounds(new Rectangle(20, 170, 67, 15));
        jTextArea2.setBorder(BorderFactory.createLoweredBevelBorder());
        jTextArea2.setText("等待返回...");
        jTextArea2.setBounds(new Rectangle(19, 194, 694, 481));
        this.getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
        jTextField1.setText("www.baidu.com");
        jTextField1.setBounds(94, 22, 200, 20);
        jButton1.setBounds(new Rectangle(349, 20, 100, 23));
        jButton1.setText("Socket发送");
       

       
        jButton1.addMouseListener(new MouseAdapter() {
         @Override
         public void mouseClicked(MouseEvent e) {
          super.mouseClicked(e);
          sendCenter(jTextArea1.getText(),jTextField1.getText().trim());
         }
  });
       
       
        jLabel2.setText("发送内容:");
        jLabel2.setBounds(new Rectangle(21, 50, 55, 15));
        jTextArea1.setText("GET /index.html HTTP/1.0\n\n");
        JScrollPane scroll1  = new JScrollPane(jTextArea1);
        scroll1.setBounds(18, 74, 692, 88);
        scroll1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        scroll1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
       
       
        JScrollPane scroll2  = new JScrollPane(jTextArea2);
        scroll2.setBounds(18,197,689,483);
        scroll2.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        scroll2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
      
       
        jPanel1.add(jLabel1);
        jPanel1.add(jTextField1);
        jPanel1.add(jButton1);
        jPanel1.add(jLabel2);
        jPanel1.add(scroll1);
        jPanel1.add(jLabel3);
        jPanel1.add(scroll2);
        jPanel1.setLayout(null);
        jLabel1.setBounds(new Rectangle(21, 18, 79, 26));
        jLabel1.setText("WEB地址:");
       
        this.setVisible(true);
    }
   
    private void sendCenter(String center,String ip) {
  
     
     jTextArea2.setText("获取中请等待...");
     
     
     final int HTTP_PORT = 80;
  Socket socket;
  
  try {
   
   socket = new Socket(ip,HTTP_PORT);
   
   BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
   BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
   
   out.write(center.toString());
   
   out.flush();
   String line;
   StringBuffer sb = new StringBuffer();
   
   jTextArea2.setText("");
   while((line=in.readLine())!=null){
    sb.append(line+"\n");
   }
   out.close();
   in.close();
   jTextArea2.setText(sb.toString());
   jTextArea2.append("数据传输成功!");
   return ;
   
  } catch (UnknownHostException e) {
   jTextArea2.setText("连接出错,请重新连接!");
   e.printStackTrace();
   return ;
  } catch (IOException e) {
   jTextArea2.setText("连接出错,请重新连接!");
   e.printStackTrace();
   return ;
  }
  
    }
   
    public static void main(String[] args) throws Exception {
  MainFrame main = new MainFrame();
 }
}