• 01_1_Socket实现


    01_1_Socket实现

    1.什么是MIME

    Multipurpos Internet Mail Extension

    指明白传送内容的格式

    最早用于邮件附件

    2.HTTP协议基础

    HTTPHypertext Transfer Protocol,超文本传输协议)

    HTTP是以明文方式发送数据的

    用于从WWW服务器传输超文本到本地浏览器的传输协议。

    HTTP协议是以TCP/IP为基础的高层协议。

    现在广泛使用的版本HTTP/1.1

    3.socket实现

    import java.io.BufferedReader;

    import java.io.BufferedWriter;

    import java.io.InputStreamReader;

    import java.io.OutputStreamWriter;

    import java.net.Socket;

    public class TestHTTP {

    public static void main(String[] args) throws Exception {

    Socket s = new Socket("127.0.0.1", 8080);

    //建立一个到服务器的连接,127.0.0.表示要连接的ip 8080表示要连接的端口

    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

    //Output只能写 Input只能读 OutputStreamWriter 提供转换的字符流 BufferedWriter 提供缓存功能

    bw.write("Get / HTTP/1.1");

    //Get 表示处理的方法  /表示处理的资源 HTTP/1.1处理的协议

    bw.newLine();

    //留一个空行

    bw.write("Host: 127.0.0.1:8080");

    //指定Host,因为有可能一个IP地址,管理多个域名

    bw.newLine();

    bw.write("Content-Type: text/html");

    //指定访问的是什么类型的资源

    bw.newLine();

    bw.newLine();

    //表示结束

    bw.flush();

    //清空缓存区的内容

    BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));

    String str = null;

    while((str = br.readLine()) != null) {

    System.out.println(str);

    //循环读取从服务端的输入流

    }

    bw.close();

    br.close();

    s.close();

    //关闭响应的流

    }

    }

  • 相关阅读:
    linux运维之分析系统负载及运行状况
    linux运维之分析日志相关命令(1)
    centos7修改网卡名称为eth0
    LANMP环境编译参数查看方法
    自动化部署之搭建yum仓
    浙大 PAT 乙级 1001-1075 目录索引
    更改docker服务网段分配地址
    MySQL主从复制(Replication for Backup)
    MySQL读写分离-简单思考
    NGINX负载均衡缓存配置
  • 原文地址:https://www.cnblogs.com/flyback/p/8641945.html
Copyright © 2020-2023  润新知