热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

从0到1学java:网络编程

点击上方“罗晓胜”,马上关注,您的支持对我帮助很大 上期文章 从0到1学java:工具类从0到1学java:集合从0到1学java:文件与流IO   前言   网络编程是指编写运行

点击上方“罗晓胜”,马上关注,您的支持对我帮助很大

 

上期文章

 

  • 从0到1学java:工具类

  • 从0到1学java:集合

  • 从0到1学java:文件与流IO

 

/   前言   /

 

网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。

java.net 包中 J2SE 的 API 包含有类和接口,它们提供低层次的通信细节。你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节。

java.net 包中提供了两种常见的网络协议的支持:

  • TCP:TCP 是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称 TCP / IP。

  • UDP:UDP 是用户数据报协议的缩写,一个无连接的协议。提供了应用程序之间要发送的数据的数据包。

     

     

/   正文   /

 

网络编程

要点

  • 网络基础知识

    • OSI参考模型

    • IP地址和端口号

  • Socket编程

    • Socket原理

    • 基于TCP的Socket编程

    • 基于多线程的Socket编程

网络基础知识

  • 网络应用程序

    • 在已实现了网络互联的不同的计算机上运行的程序,这些程序之 间可以交换数据

      从0到1学java:网络编程

  • 网络编程 — socket编程

    • 通过使用套接字来达到进程间通信目的编程就是网络编程

IP地址和端口号

IP

  • TCP/IP协议

    • 协议 —网络中计算机之间通信的规则

    • 大多数的网络协议都以TCP/IP协议为基础

  • IP地址

    • IP地址为每台计算机指定一个标识号,通过这个标识号来指定要接收数据的计算机和识别发送 数据的计算机

  • IPV4/IPV6

    • IPV4— 4个字节,即32位的二进制数表示

    • IPV6— 16个字节的格式来表示IP地址

端口号

一台计算机运上运行多个网络程序,IP地址只能保证把数据送到该计算机但如何确定把这些数据交给哪个程序呢 * 端口号是一个整数,用于表示该数据帧交给哪个应用程序来处理 * 同一台计算机上不能有两个使用同一个端口的程序运行 * 端口数范围为06535 * 01023用于一些知名的网络服务和应用,用户的普通网络程序应使用1024以上的端口号

TCP与UDP

  • TCP(Transmission Control Protocol)

    • 面向连接的通信协议

    • 提供两台计算机间的可靠的、端到端的字节流通信的协议

  • UDP(User Datagram Protocal )

    • 无连接的通信协议

    • UDP不保证可靠数据的传输

Socket原理

  • Socket原理

    • 通信的目的的IP地址

    • 使用的传输层协议

    • 使用的端口号与一个socket绑定

    • Socket—套接字

    • 是网络应用程序编程的接口和一种机制

    • 用套接字中的相关函数来建立连接和完成通信

    • Socket可以看成在两个程序进行通讯连接中的一个端点

    • 将区分不同应用程序进程的三个参数

  • TCP套接字

    • 较可靠的双向流协议

    • 发送任意数量的数据

    • 提供消息确认、错误检测和错误恢复等服务

  • UDP套接字

    • 不可靠

基于TCP的Socket编程

  • 利用TCP协议进行通信 两个应用程序,有主从之分 一个称为服务器程(Server), 另外一个称为客户机程(Client)

  • 交互过程 (1) 服务器程序创建一个ServerSocket,然后调用accept方法等待客户来连接 (2) 客户端程序创建一个socket 并请求与服务器建立连接 (3) 刚才建立了连接的两个socket在一个单独的线程上对话 (4) 服务器开始等待新的连接请求

  • 基于TCP的Socket编程 —— java.net.ServerSocket

    • ServerSocket(int port)

    • ServerSocket(int port, int maxqu)

    • 实现服务器套接字

    • 构造函数

    • accept( ) 方法用于等待客户端触发通信,返回值类型为Socket

  • 基于TCP 的Socket编程 —— java.net.Socket

    • InetAddress getInetAddress( )

    • int getPort( )

    • int getLocalPort( )

    • InputStream getInputStream()

    • OutputStream getOutputStream()

    • void close()

    • Socket(String hostName, int port)

    • Socket(InetAddress a, int port)

    • 实现客户端套接字

    • 构造函数

    • 可用方法

/   总结   /

 

本文主要讲了网络编程相关的内容,我们现在无时无刻不在和网络中的世界沟通,WEB也好,APP也好,电脑也罢,都是我们连接网络世界的窗口,了解网络知识,就会知道整个网络世界是怎样交流沟通的。

 

往期推荐:

如何入门做软件开发

为什么我不推荐入行程序员

做全栈开发很难吗

关注我的公众号,学习技术或投稿

从0到1学java:网络编程

长按上图,识别图中二维码即可关注


推荐阅读
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了网络编程的要点,包括InetAddress类获取IP地址的方法,IP地址的定义和表示方法,IPv4和IPv6的区别,以及网络通信协议中的端口和协议类型。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • Python字典推导式及循环列表生成字典方法
    本文介绍了Python中使用字典推导式和循环列表生成字典的方法,包括通过循环列表生成相应的字典,并给出了执行结果。详细讲解了代码实现过程。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有