package cn.itcast.net.p2.ie_server;

import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

public class MyBrowser {

/**
  * @param args
  * @throws IOException
  * @throws UnknownHostException
  */
 public static void main(String[] args) throws UnknownHostException, IOException {

Socket s = new Socket("192.168.1.100",8080);
  
  //模拟浏览器,给tomcat服务端发送符合http协议的请求消息。
  PrintWriter out = new PrintWriter(s.getOutputStream(),true);
  out.println("GET /myweb/1.html HTTP/1.1");
  out.println("Accept: */*");
  out.println("Host: 192.168.1.100:8080");
  out.println("Connection: close");
  out.println();
  out.println();
  
  
  InputStream in = s.getInputStream();
  
  byte[] buf = new byte[1024];
  int len = in.read(buf);
  
  String str =new String(buf,0,len);
  System.out.println(str);
  
  s.close();
  
  //http://192.168.1.100:8080/myweb/1.html
 }

}

package cn.itcast.net.p2.ie_server;

import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class MyTomcat {

/**
  * @param args
  * @throws IOException
  */
 public static void main(String[] args) throws IOException {

ServerSocket ss = new ServerSocket(9090);
  
  Socket s = ss.accept();
  System.out.println(s.getInetAddress().getHostAddress()+".....connected");
  
  InputStream in = s.getInputStream();
  
  byte[] buf = new byte[1024];
  
  int len = in.read(buf);
  String text = new String(buf,0,len);
  System.out.println(text);
  
  
  //给客户端一个反馈信息。
  PrintWriter out = new PrintWriter(s.getOutputStream(),true);
  
  out.println("<font color='red' size='7'>欢迎光临</font>");
  
  s.close();
  ss.close();
 }

}

package cn.itcast.net.p2.ie_server;

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

public class URLDemo {

/**
  * @param args
  * @throws IOException
  */
 public static void main(String[] args) throws IOException {

String str_url = "http://192.168.1.100:8080/myweb/1.html";
  
  URL url = new URL(str_url);
  
//  System.out.println("getProtocol:"+url.getProtocol());
//  System.out.println("getHost:"+url.getHost());
//  System.out.println("getPort:"+url.getPort());
//  System.out.println("getFile:"+url.getFile());
//  System.out.println("getPath:"+url.getPath());
//  System.out.println("getQuery:"+url.getQuery());
  
//  InputStream in = url.openStream();
  
  //获取url对象的Url连接器对象。将连接封装成了对象:java中内置的可以解析的具体协议的对象+socket.
  URLConnection conn = url.openConnection();
  
//  String value = conn.getHeaderField("Content-Type");
//  System.out.println(value);
  
//  System.out.println(conn);
  //sun.net.www.protocol.http.HttpURLConnection:http://192.168.1.100:8080/myweb/1.html
  
  InputStream in = conn.getInputStream();
  
  byte[] buf = new byte[1024];
  int len = in.read(buf);
  
  String text = new String(buf,0,len);
  
  System.out.println(text);
  
  in.close();
  
 }

}

package cn.itcast.net.p3.iegui;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.InputStream;
import java.net.URL;

import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;

/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class MyBrowseGUI extends javax.swing.JFrame {
 private JTextField url_text;
 private JButton goto_but;
 private JScrollPane jScrollPane1;
 private JTextArea page_content;

/**
 * Auto-generated main method to display this JFrame
 */
 public static void main(String[] args) {
  SwingUtilities.invokeLater(new Runnable() {
   public void run() {
    MyBrowseGUI inst = new MyBrowseGUI();
    inst.setLocationRelativeTo(null);
    inst.setVisible(true);
   }
  });
 }
 
 public MyBrowseGUI() {
  super();
  initGUI();
 }
 
 private void initGUI() {
  try {
   setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
   getContentPane().setLayout(null);
   {
    url_text = new JTextField();
    getContentPane().add(url_text);
    url_text.setBounds(12, 36, 531, 44);
    url_text.addKeyListener(new KeyAdapter() {
     public void keyPressed(KeyEvent evt) {
      url_textKeyPressed(evt);
     }
    });
   }
   {
    goto_but = new JButton();
    getContentPane().add(goto_but);
    goto_but.setText("\u8f6c \u5230");
    goto_but.setBounds(555, 36, 134, 44);
    goto_but.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent evt) {
      goto_butActionPerformed(evt);
     }
    });
   }
   {
    jScrollPane1 = new JScrollPane();
    getContentPane().add(jScrollPane1);
    jScrollPane1.setBounds(12, 92, 676, 414);
    {
     page_content = new JTextArea();
     jScrollPane1.setViewportView(page_content);
    }
   }
   pack();
   this.setSize(708, 545);
  } catch (Exception e) {
      //add your error handling code here
   e.printStackTrace();
  }
 }
 
 private void goto_butActionPerformed(ActionEvent evt) {
  showPage();
 }
 
 private void url_textKeyPressed(KeyEvent evt) {
  if(evt.getKeyCode()==KeyEvent.VK_ENTER)
   showPage();
  
 }

private void showPage() {
  try {
   
   String url_str = url_text.getText();
   URL url = new URL(url_str);
   
   InputStream in = url.openConnection().getInputStream();//url.openStream();
   
   page_content.setText("");
   
   byte[] buf = new byte[1024];
   int len = in.read(buf);
   String text = new String(buf,0,len,"utf-8");
   
   page_content.setText(text);
   
   in.close();
   
   
  } catch (Exception e) {
   // TODO: handle exception
  }
 }

}

java Socket Tcp 浏览器和服务器(二)的更多相关文章

  1. java Socket Tcp 浏览器和服务器(一)

    自定义服务端,使用已有的客户端IE,了解一下客户端给服务端发了什么请求? 发送的请求是: GET / HTTP/1.1  请求行  请求方式  /myweb/1.html  请求的资源路径   htt ...

  2. JAVA Socket 编程学习笔记(二)

    在上一篇中,使用了 java Socket+Tcp/IP  协议来实现应用程序或客户端--服务器间的实时双向通信,本篇中,将使用 UDP 协议来实现 Socket 的通信. 1. 关于UDP UDP协 ...

  3. 【JAVA网络流之浏览器与服务器模拟】

    一.模拟服务器获取浏览器请求http信息 代码: package p06.TCPTransferImitateServer.p01.ImitateServer; import java.io.IOEx ...

  4. java socket tcp(服务器循环检测)

    刚才看了下以前写了的代码,tcp通信,发现太简单了,直接又摘抄了一个,运行 博客:http://blog.csdn.net/zhy_cheng/article/details/7819659 优点是服 ...

  5. java Socket Tcp示例三则(服务端处理数据、上传文件)

    示例一: package cn.itcast.net.p5.tcptest; import java.io.BufferedReader;import java.io.IOException;impo ...

  6. java Socket(TCP)编程小项目

    package 服务器端相关操作; import java.io.Serializable; /* * 创建存储需要传输信息的对象,方便客户端向服务器端传送数据 */ public class Cli ...

  7. Socket TCP客户端和服务器的实现

    import java.io.*; import java.net.Inet4Address; import java.net.InetSocketAddress; import java.net.S ...

  8. Java Socket TCP编程(Server端多线程处理)

    package com; import java.io.*; import java.net.Socket; /** * Socket Client * <p> * Created by ...

  9. Java Socket TCP编程

    package com; import java.io.*; import java.net.ServerSocket; import java.net.Socket; /** * Socket Se ...

随机推荐

  1. wrap ConcurrentDictionary in BlockingCollection

    ConcurrentDictionary<int, BlockingCollection<string>> mailBoxes = new ConcurrentDictiona ...

  2. Mac 在启动eclipse时 Failed to load JavaHL Library解决方法

    在Mac 10.9.1系统里, 在Eclipse中安装svn的插件,出现如下提示 方法一: 1.根据提示进入链接 http://subclipse.tigris.org/wiki/JavaHL 2. ...

  3. java、js中实现无限层级的树形结构(类似递归)

    js中: var zNodes=[ {id:0,pId:-1,name:"Aaaa"}, {id:1,pId:0,name:"A"}, {id:11,pId:1 ...

  4. C++中二维数组的动态分配

    C++中二维数组的动态分配 作者:   来源:csdn博客   公布者:admin 时间:2009-04-23 13:55:03   点击:115 C++中一维数组的动态分配十分经常使用,但C++刚開 ...

  5. 用java在客户端读取mongodb中的数据并发送至服务器

    使用Java自带的socket端口来实现,程序如下: Client.java package com.cn.gao; import java.net.*; import java.io.*; impo ...

  6. C#中三种定时器对象的比较 【转】

    https://www.cnblogs.com/zxtceq/p/5667281.html C#中三种定时器对象的比较 ·关于C#中timer类 在C#里关于定时器类就有3个1.定义在System.W ...

  7. Proxy 代理模式 动态代理 cglib MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. 错误: 找不到或无法加载主类 Files\red5-server ,原因与解决办法

    因为你把 red5放到了 Program Files 下,而Program Files 中间有个空格,启动路径不允许有空格,换个没空格的路径就OK啦

  9. jQuery实现新浪微博自动底部加载的方法

    jQuery ScrollPagination plugin 是一个jQuery 实现的支持无限滚动加载数据的插件. 地址:http://andersonferminiano.com/jquerysc ...

  10. CentOS 服务器安全设置

      我们必须明白:最小的权限+最少的服务=最大的安全.所以无论是配置任何服务器,我们都必须把不用的服务关闭.把系统权限设置到最小化,这样才能保证服务器最大的安全. 一.注释掉系统不需要的用户和用户组 ...