JAVA应用程序开发之网络编程(java中网络编程)

【本文详细介绍了Java应用开发中的网络编程,欢迎读者朋友们阅读、转发和收藏!】

1 基础知识

1.1 网络基本概念

1.1.1 网络基础知识

网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。

目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也能及时得到服务。

JAVA应用程序开发之网络编程(java中网络编程)

1.1.2 两类传输协议 TCP 和 UDP

尽管TCP/IP协议的名称中只有TCP这个协议名,但是在TCP/IP的传输层同时存在TCP和UDP两个协议。

TCP 是Tranfer Control Protocol的简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作。

UDP 是User Datagram Protocol的简称,是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。

两种协议做简单比较如下:

使用UDP时,每个数据报中都给出了完整的地址信息,因此无需要建立发送方和接收方的连接。对于TCP协议,由于它是一个面向连接的协议,在socket之间进行数据传输之前必然要建立连接,所以在TCP中多了一个连接建立的时间。

使用UDP传输数据时是有大小限制的,每个被传输的数据报必须限定在64KB之内。而TCP没有这方面的限制,一旦连接建立起来,双方的socket就可以按统一的格式传输大量的数据。UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方。而TCP是一个可靠的协议,它确保接收方完全正确地获取发送方所发送的全部数据。

总之,TCP在网络通信上有极强的生命力,例如远程连接(Telnet)和文件传输(ftp)都需要不定长度的数据被可靠地传输。相比之下UDP操作简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中client/server应用程序。

1.2 基于 URL 的高层次 Java 网络编程

1.2.1 一致资源定位器 URL

URL(Uniform Resource Locator) 是一致资源定位器的简称,它表示Internet上某一资源的地址。通过URL我们可以访问Internet上的各种网络资源,比如最常见的WWW,FTP站点。浏览器通过解析给定的URL可以在网络上查找相应的文件或其他资源。

1.2.2 URL 的组成

protocol://resourceName

协议名(protocol)指明获取资源所使用的传输协议,如http、ftp、gopher、file等,资源名(resourceName)则应该是资源的完整地址,包括主机名、端口号、文件名或文件内部的一个引用。

1.2.3 创建一个 URL

为了表示URL,java.net中实现了类URL。我们可以通过下面的构造方法来初始化一个URL对象:

(1) public URL (String spec);

通过一个表示URL地址的字符串可以构造一个URL对象。

1.2.4 解析一个 URL

一个URL对象生成后,其属性是不能被改变的,但是我们可以通过类URL所提供的方法来获取这些属性:

public String getProtocol() 获取该URL的协议名。public String getHost() 获取该URL的主机名。public int getPort() 获取该URL的端口号,如果没有设置端口,返回-1。public String getFile() 获取该URL的文件名。public String getRef() 获取该URL在文件中的相对位置。public String getQuery() 获取该URL的查询信息。public String getPath() 获取该URL的路径public String getAuthority() 获取该URL的权限信息public String getUserInfo() 获得使用者的信息public String getRef() 获得该URL的锚(即“引用”)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年3月20日 上午9:13
下一篇 2023年3月20日 上午9:23

相关推荐

  • 课题负责人承诺书模板

    课题负责人承诺书模板 尊敬的XXX老师: 我是XXX,作为本次课题负责人,我承诺如下: 1. 认真履行职责:我将认真履行自己作为课题负责人的职责,积极组织课题组成员进行研究,确保研…

    科研百科 2024年11月5日
    30
  • 洛阳征婚网–速配网洛阳站,洛阳免费征婚交友婚恋网(搜洛阳征婚网)

    洛阳征婚网–速配网洛阳站是最真实的全球华人征婚网和婚恋网!速配功能强大!免费征婚!4星以上免费发信看信! 如果你是单身,真诚想找恋人、找对象、找老公、找老婆、找老伴,现…

    科研百科 2024年5月21日
    91
  • Java ssm框架管理系统项目

    Java ssm框架管理系统项目 Java ssm框架管理系统项目是一种用于管理企业级Java应用程序的项目。该项目使用Java ssm框架,包括Spring、SpringMVC、…

    科研百科 2025年1月6日
    1
  • 免费的项目管理软件平台

    免费的项目管理软件平台 随着数字化时代的到来,项目管理软件已经成为了项目管理中不可或缺的一部分。但是,目前市面上的免费项目管理软件平台越来越多,如何选择一款适合自己的平台成为了项目…

    科研百科 2024年5月24日
    71
  • 科技成果汇编

    科技成果汇编 近年来,中国在科技创新领域取得了许多重要成果,这些成果不仅为中国的发展提供了有力支撑,也对世界科技创新产生了重要影响。本汇编将列举一些具有代表性的科技成果,展示中国在…

    科研百科 2024年11月17日
    4
  • 做好科研项目核算 科研项目核算应注意什么

    做好科研项目核算是科研项目管理中非常重要的一环,能够帮助我们更好地了解项目成果和投入,同时也能够为后续的财务分析提供数据支持。在科研项目核算中,我们应注意以下几个方面。 一、明确核…

    科研百科 2024年3月30日
    102
  • 中期成果、最终成果

    中期成果与最终成果 在过去的一年中,我们的团队取得了很多重要的成果。在这里,我想向大家介绍我们的中期成果和最终成果。 我们的中期成果是在2022年1月至6月期间完成的。在这段时间内…

    科研百科 2024年10月12日
    10
  • 铁力市桃山镇:“三个方面”抓实基层党建工作(全力抓好基层党建工作)

    铁力市桃山镇坚持从制度、思想、亮点三方面科学谋划、统筹推进基层党建工作,努力形成全面融合、全面进步、全面过硬的基层党建生动局面。 强基固本抓制度。按照“立规矩、强队伍、提质效”的工…

    科研百科 2023年9月19日
    208
  • 河南打造全省“互联网 智慧党建”融平台 党员教育驶上信息化“高速路”

    本报郑州讯 (通讯员 豫组轩)今年以来,河南省委组织部积极推进互联网与党员教育深度融合,实施了以省级主导的“互联网 智慧党建”融平台为主体、各地探索的 “互联网 党务 政务 服务”…

    科研百科 2023年11月4日
    187
  • 专业项目管理系统服务

    专业项目管理系统服务 随着现代企业的快速发展,项目管理已经成为企业管理中不可或缺的一部分。然而,传统的项目管理方式已经无法满足现代企业的需求,因此,专业项目管理系统服务应运而生。 …

    科研百科 2024年12月17日
    0