黑马程序员——网络编程:自定义个类似于IE浏览器

------- <a href="http://www.itheima.com" target="blank">android培训</a>

<pre name="code" class="html" style="font-size: 13.3333339691162px;">自定义一个类似于IE浏览器的程序,在输入框中输入目标网址可以通过开启Apache来获取
源代码。代码如下:
import java.io.*;
import java.awt.*;
import java.net.*;
import java.awt.event.*;

class IE
{	
	private Frame frame;
	private Button bu;
	private TextArea ta;
	private TextField tf;
	
	IE(){
		init();
	}

	public void init(){
		frame = new Frame("自定义浏览器");
		
		bu = new Button("转到");

		ta = new TextArea(20, 44);

		tf = new TextField(35);

		frame.add(tf);
		frame.add(bu);
		frame.add(ta);
		
	
		frame.setBounds(250, 200, 400, 500);
		frame.setLayout(new FlowLayout());
		frame.setVisible(true);
		
		event();
	}

	public void event(){
		frame.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});
		
		tf.addKeyListener(new KeyAdapter(){
			public void keyPressed(KeyEvent e){
				if(e.getKeyCode() == KeyEvent.VK_ENTER){
					ta.setText("");
					tf.setText("");
					String str = tf.getText();

					//http://172.28.132.203:80/java_net/demo1.html
					String str1 =  str.substring(str.indexOf("//") + 2);

					//172.28.132.203:80/java_net/demo1.html
					String str2 = str1.substring(0, str1.indexOf('/'));
					String ch[] = str2.split(":");
					String ip = ch[0];
					String port = ch[1];
					String dir = str1.substring(str1.indexOf('/'));

					ta.append("ip = " + ip + "\r\n");
					ta.append("port = " + port + "\r\n");
					ta.append("dir = " + dir + "\r\n");
					
					try{
						Socket s = new Socket(ip, Integer.parseInt(port));
						
						PrintWriter pw = new PrintWriter(s.getOutputStream(), true); 

						//以GET方式 访问目录文件  http协议版本
						pw.println("GET "+dir+"  HTTP/1.1");

						//可以接收的类型为 任意类型
						pw.println("Accept: */*");

						//接收的语言
						pw.println("Accept-Language: zh-CN");

						//服务器的 IP 和 端口
						pw.println("Host: "+ip+":"+port);

						//连接信息发送完以后就断开
						pw.println("Connection: Closed");

						//隔开头部和数据的头部
						pw.println();

						InputStream is = s.getInputStream();
						byte b[] = new byte[1024];
						int len = 0;
						while((len = is.read(b)) != -1){
							ta.append(new String(b, 0, len));
						}

					}catch(Exception ex){
						throw new RuntimeException("获取错误");
					}
				}
			}
		});

		bu.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				try{
					ta.setText("");
					tf.setText("");
					String str = tf.getText();

					URL url = new URL(str);

					URLConnection urlCon = url.openConnection();

					InputStream is = urlCon.getInputStream();

					byte[] b = new byte[1024];

					int len = 0;

					while((len = is.read(b)) != -1){
							ta.append(new String(b, 0, len));
					}
				}catch(Exception ex){
					throw new RuntimeException("获取错误");
				}
			}
		});
	}

	public static void main(String []args){
		new IE();
	}


<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------


 

猜你喜欢

转载自blog.csdn.net/a1106900429/article/details/40025777