美文网首页Java
复习 13.网络编程

复习 13.网络编程

作者: 第二套广播体操 | 来源:发表于2019-03-16 12:37 被阅读0次

C/S Client/Server 是指客户端和服务器结构 创建程序 QQ 迅雷等软件
B/S Brower/Server 浏览器程序连接数据库服务器

网络通信协议:TCP/IP 因特网互联协议
CMD:ipconfig 查询本机IP

端口号 不可重复 逻辑端口 可以使用软件查询端口号
1 系统自动分配 2 主动请求

范围0-65535 1024之间为系统端口 不可用
mysql:3306
Oracle:1521
Tomcat:8080

服务器:没有流 应该获取客户端的实例 利用客户端的IO流 和客户端进行交互

套接字:包含IP地址和端口号的网络单位
客户端和服务端交互 使用Socket中提供的网络流 不能自己创建
服务器端必须明确:多个客户端和服务端交互 (使用多线程技术)

html服务器:

/**
 * @ClssName HtmlServer
 * @Autor Yu
 * @Description TODO
 * @Date 2019/3/15 16:35
 * Version 1.0
 * 172.20.35.60
 */
public class HtmlServer {
    public static void main(String[] args) throws IOException {
//        创建服务器实例
        ServerSocket serverSocket = new ServerSocket(10003);
//        浏览器解析服务器回写的html页面 如果有图片我们需要多创建一个线程传送图片
//        我们让服务器一直处于监听状态 客户端请求一次 服务器回写一次
        while (true) {
//    接收访问客户端
            Socket socket = serverSocket.accept();

            new Thread(()-> {
                    try {
                        InputStream is = socket.getInputStream();
                        BufferedReader br = new BufferedReader(new InputStreamReader(is));
//        获取反馈的第一行信息 GET /net/index.html HTTP/1.1
                        String line = br.readLine();
//        对信息进行切割
                        String[] s = line.split(" ");
//        把路径前面的/去掉
                        String htmlPath = s[1].substring(1);
//        创建本地输入流构造方法绑定读取的html路径
                        FileInputStream fis = new FileInputStream(htmlPath);
//        获取网络字节输出流
                        OutputStream os = socket.getOutputStream();
//                     填写协议
                        os.write("HTTP/1.1 200 OK".getBytes());
                        os.write("Content-Type:text/html\r\n".getBytes());
                        os.write("\r\n".getBytes());//没有空格不解析
//        读取本地网页 输出到浏览器客户端
                        int len = 0;
                        byte[] bytes = new byte[1024];
                        while ((len = fis.read(bytes)) != -1) {
                            os.write(bytes, 0, len);
                        }
//        关闭本地输出流
                        fis.close();
//                        关闭该连接的输出流
                        socket.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                
            }).start();

        }
    }
}

相关文章

  • 复习 13.网络编程

    C/S Client/Server 是指客户端和服务器结构 创建程序 QQ 迅雷等软件B/S Brower/Se...

  • [Java]网络编程

    #### 13.网络编程 1.要想实现网络传输,需要考虑的问题有哪些? 1.1 如何才能准确的定位网络上的一台主机...

  • 4月5日TestServerSocket

    于2017/4/5复习学习的java - Socket网络编程. 本次完成的是网络聊天编程功能(没有GUI).我想...

  • 3/24day18_网络编程_ TCP

    day18 复习 今日内容 网络编程概念(网络通信协议, IP地址, 端口号) TCP 网络编程 综合案例(文件上...

  • 20201104日记

    今日总结: 白天满课 写了一下晚上开会内容 go网络编程 明日计划: 实现树 复习离散 数据结构课 go网络编程 ...

  • 网络复习-笔记04-Socket编程

    Socket编程—应用编程接口(API) 应用编程接口API:就是应用进程的控制权和操作系统的控制权进行转换的一个...

  • 基于多线程与 Socket 实现的聊天系统 v1.0(多线程、命

    复习 Java 网络编程写的小 Demo 服务端 服务端实现 客户端 客户端实现

  • 《网络程序设计》考后感

    一开始选这个的原因是我以为是网页方面的知识,结果。。。。。 这次自考中,我的网络编程是最先复习的,也是复习...

  • Android 网络编程 目录

    Android 网络编程 目录 Android 网络编程1 Http协议Android 网络编程2 Okhttp缓...

  • 2019学习计划

    3月份:复习机器学习算法,使用sklearn或者tf对一些案例进行编程 4月份:复习深度学习理论,对经典网络结构进...

网友评论

    本文标题:复习 13.网络编程

    本文链接:https://www.haomeiwen.com/subject/eonjmqtx.html