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年4月24日 下午5:50
下一篇 2023年4月24日 下午6:00

相关推荐

  • 外企业务流程管理

    外企业务流程管理 随着全球化和经济的快速发展,外企已经成为企业中最受欢迎的雇主之一。外企在商业领域具有丰富的经验和技术,他们需要一个高效的业务流程管理系统来确保他们的业务运营能够跟…

    科研百科 2024年8月13日
    41
  • 横向科研经费管理

    横向科研经费管理 随着科技的快速发展,横向科研经费管理已经成为现代科研中必不可少的一部分。横向科研经费管理是指对不同实验室或机构之间的科研经费进行有效的管理和控制,以确保科研经费的…

    科研百科 2024年5月29日
    62
  • 项目管理流程系统框架图

    项目管理流程系统框架图 项目管理流程系统框架图可以帮助企业或组织建立一套完整的项目管理流程,包括项目启动、规划、执行、监控和结束等各个环节。下面是一个基本的项目管理流程系统框架图。…

    科研百科 2025年1月1日
    1
  • 项目管理系统答辩技巧

    项目管理系统答辩技巧 在项目管理系统答辩中,你将面临许多挑战,包括如何清晰地表达你的项目管理系统,如何回答评委的问题,以及如何在答辩中展示你的项目管理系统的优势。以下是一些有用的技…

    科研百科 2024年12月20日
    5
  • 中国上海客户服务(上海客户关系管理系统)

    上海客户关系管理系统 随着商业的发展,客户关系管理(CRM)已经成为企业成功的关键因素之一。上海客户关系管理系统是一种能够帮助企业更好地管理客户关系的软件系统。本文将介绍上海客户关…

    科研百科 2024年6月2日
    58
  • 项目管理系统的特点有哪些?(项目管理系统主要用于项目的什么)

    项目是公司盈利的来源,只要有项目管理就需要一个集成化项目管理系统‍,这可以让公司的各种项目有条不紊地运行,企业软件项目管理系统‍包括管理子系统、组织过程管理子系统以及综合决策分析子…

    2022年7月13日
    317
  • 比芯片难度更高!美日几乎全部垄断,我国企业连高仿也造不出?

    谭久彬,这位享有崇高声望的工程院院士,曾如此坦诚地表达道。他的话语,充满了对知识的追求和对科研的执着,让人深感敬佩。 精密仪器对国家的意义非同小可,它们不仅是科技进步的见证,更是国…

    科研百科 2024年6月20日
    43
  • 党风廉政建设第一责任人责任清单

    党风廉政建设第一责任人责任清单 党风廉政建设是中国共产党的重要工作之一,其目的是加强党的纪律建设,提高党的执政能力和执政水平,确保党的先进性和纯洁性。作为党的一名领导,党风廉政建设…

    科研百科 2025年1月3日
    0
  • 低代码云oa

    低代码云OA:提升办公效率的新趋势 随着信息技术的快速发展,企业办公方式也在不断演进。传统的办公流程繁琐、效率低下的问题逐渐凸显,因此,低代码云OA应运而生。低代码云OA是一种基于…

    科研百科 2024年2月29日
    72
  • 项目投资管理系统的组成

    项目投资管理系统是一个用于管理项目投资和进度的软件系统。一个好的项目投资管理系统可以帮助项目团队更好地了解项目的财务状况,确保项目能够按时交付,并有效地管理项目的风险。本文将介绍项…

    科研百科 2025年1月1日
    0