前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java基础学习_网络编程_day26总结

java基础学习_网络编程_day26总结

作者头像
黑泽君
发布2018-10-11 11:27:01
2890
发布2018-10-11 11:27:01
举报
文章被收录于专栏:黑泽君的专栏黑泽君的专栏

java基础学习_网络编程_day26总结

代码语言:javascript
复制
=============================================================================
=============================================================================
涉及到的知识点有:
1:网络编程(理解)
    (1)网络编程的概述
    (2)网络参考模型
    (3)网络通信的三要素
        A:IP地址
        B:端口
        C:通信协议
    (4)Socket机制
    (5)UDP协议发送和接收数据(掌握)
    (6)TCP协议发送和接收数据(掌握)
    (7)案例:
        A:UDP
            a:最基本的UDP协议发送和接收数据
            b:把发送数据改进为键盘录入
            c:一个简易聊天小程序并用多线程改进
        B:TCP
            a:最基本的TCP协议发送和接收数据
            b:服务器给出反馈
            c:客户端键盘录入,服务器输出控制台(字符流)
            d:客户端键盘录入,服务器写到文本文件(字符流)
            e:客户端读取文本文件,服务器写到文本文件/输出控制台(字符流)
            f:上传图片(字节流)
                注意:在通道字节流中要使用flush()刷新方法。否则数据会有丢失。
            g:多线程改进上传文件
=============================================================================
=============================================================================
1:网络编程(理解)
    (1)网络编程的概述
        网络编程:用Java语言实现计算机间数据的信息传递和资源共享。
    (2)网络参考模型
        OSI参考模型(Open System Interconnection:开放系统互连)
        TCP/IP参考模型


--------------------------------------
    (3)网络通信的三要素
        A:IP地址
            a:点分十进制
            b:IP地址的组成
            c:IP地址的分类
            d:两个DOS命令
            e:InetAddress类(为了方便我们对IP地址的获取和操作,java提供了一个类InetAddress供我们使用)
                InetAddress类的成员方法:(注意:该类中没有构造方法)
                public static InetAddress getByName(String host) 根据主机名或者IP地址的字符串表示得到IP地址对象
        B:端口
            每个程序都会至少有一个逻辑端口。
            是应用程序的标识。
            范围:0-65535。其中0-1024不建议使用。
        C:通信协议
            UDP:数据打包,有限制,不连接,效率高,不可靠。
            TCP:建立数据通道,无限制,效率低,可靠。
--------------------------------------
    (4)Socket机制
        A:通信两端都有Socket对象。
        B:所有的通信都是通过Socket间的IO进行操作的。
        C:网络通信其实就是Socket间的通信。

--------------------------------------
    (5)UDP协议发送和接收数据(掌握)
        发送:
            A:创建发送端Socket对象(DatagramSocket)
            B:创建数据,并把数据打包(DatagramPacket)
            C:调用Socket对象的发送方法发送数据报包
            D:释放资源
            
        接收:
            A:创建接收端Socket对象,并指定端口号(DatagramSocket)
            B:创建一个数据包(接收容器)(DatagramPacket)
            C:调用Socket对象的接收方法接收数据
            D:解析数据包,并显示在控制台
            E:释放资源
            
        Exception in thread "main" java.net.BindException: Address already in use: Cannot bind
            多次启动接收端出现异常。端口被占用。

--------------------------------------
    (6)TCP协议发送和接收数据(掌握)
        发送:
            A:创建发送端Socket对象,并明确要连接的服务器(Socket)
                A步骤如果创建对象成功,就说明连接通道已建立成功了。    
            B:调用Socket对象获取输出流对象,写数据(OutputStream)
            C:释放资源
            
        接收:
            A:创建接收端Socket对象,并指定端口(ServerSocket)
            B:监听客户端连接,返回一个对应的Socket对象
            C:获取输入流对象,读取数据显示在控制台(InputStream)
            D:释放资源
            
        Exception in thread "main" java.net.ConnectException: Connection refused: connect
            连接被拒绝。TCP协议一定要先开服务器。
            因为TCP保证数据一定被收到,所以接收端一定要先开启。

--------------------------------------
    (7)案例:
        A:UDP
            a:最基本的UDP协议发送和接收数据
基本版本:
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档