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. 【spring cloud】【IDEA】【maven】spring cloud多模块在idea上使用maven插件打包报错:程序包XXX不存在

    >>>>spring cloud 多模块 >>>>在idea上使用maven插件打包,欲打包成jar包后 进行部署 >>>> 报 ...

  2. Nginx+Memcached+Tomcat集群配置实践(Sticky Session)

    准备工作 创建一个简单的web应用,名为session.其中有两个页面,分别如下所示: 页面login.jsp <%@ page language="java" conten ...

  3. Android图片加载框架最全解析(七),实现带进度的Glide图片加载功能

    我们的Glide系列文章终于要进入收尾篇了.从我开始写这个系列的第一篇文章时,我就知道这会是一个很长的系列,只是没有想到竟然会写这么久. 在前面的六篇文章中,我们对Glide的方方面面都进行了学习,包 ...

  4. 深度学习数据集Deep Learning Datasets

    Datasets These datasets can be used for benchmarking deep learning algorithms: Symbolic Music Datase ...

  5. [置顶] 一道经典的sql面试题不同的写法

    用一条SQL语句   查询出每门课都大于80分的学生姓名,表( #test)如下:    Name Course Mark 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王五 ...

  6. GO语言基础之error

    Go错误处理 Go 语言通过内置的错误接口提供了非常简单的错误处理机制. error类型是一个接口类型,这是它的定义: type error interface { Error() string } ...

  7. Mongo读书笔记2 -- 数据类型

      Mongo有多种类型的collection, 默认的是随着document 数目的增多自动增大; 还有一些collection被称为capped collection, 只能包含固定数目的docu ...

  8. 使用grep进行文本查找

    命令模式: grep "文本" -rl 路径 例子: grep "w3.the.abc.com" -rl /home/hy/fluent3 有时候需要排除掉一些 ...

  9. 读取Style符号库样式的方法

    以前进行符化的时候一般都是自定义Symbol,或者使用SymbologyControl进行选择,由于实际需要,我们来读取一下样式管理器中的样式.在ArcMap中打开如下:style下有很多样式类,每个 ...

  10. SpringMVC上传文件的三种方式(转载)

    直接上代码吧,大伙一看便知 这时:commonsmultipartresolver 的源码,可以研究一下 http://www.verysource.com/code/2337329_1/common ...