java应用程序开发之网络编程(java中网络编程)-ag凯发k8国际

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

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

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

尽管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应用程序。

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

protocol://resourcename

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

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

(1) public url (string spec);

通过一个表示url地址的字符串可以构造一个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的锚(即“引用”)

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

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

相关推荐

  • 金蝶云进销存无需代码对接钉钉系统,实现企业内外部高效协同(金蝶云进销存教程视频)

    1.用户场景描述: 消费互联网时代,所有的改变其实都是在渠道端,消费端,但竞争的关系要素依然是规模、盈利,只是加上了技术进步和资本驱动,金蝶集团旗下研发了一系列金蝶云产品,比如金蝶…

    科研百科 2023年12月6日
    99
  • 智慧党建云平台系统是一种基于互联网技术的智能化党建管理平台,它为党组织提供了一个集党务管理、信息发布、交流互动、学习培训于一体的全新模式,可辅助党组织管理者高效地管理党组织工作,推…

    科研百科 2024年7月4日
    41
  • 3月29日,飞搏软件(834787)披露2017年年报,2017年公司实现营收2547.57万元,较上年同期下滑9.38%;亏损860.91万元,而上年同期亏损金额为1113.27…

    科研百科 2023年3月14日
    202
  • 国家级科研平台的数量多少,也是一所高校与科研院所的科研实力的体现,国家级的科研平台主要包含国家重点实验室、国家工程实验室、国家工程技术研究中心、省部共建国家重点实验室,其中部属的国…

    科研百科 2024年4月12日
    78
  • app发布和上架之前需要做许多准备工作,具体有哪些呢?这篇文章里,作者梳理了相关流程和内容并予以分享,一起来看看吧。 社交应用上架到应用商店前,需要做很多准备工作,否则容易出现手忙…

    科研百科 2024年5月6日
    51
  • 前几日在知乎看到一个问题:trello等项目管理工具体验如何? 本来利益相关太高不准备答,因为哪怕通篇说trello好,有一句不好都有贬低对手抬高自己之嫌疑。 但是我发现题主问的是…

    2022年9月23日
    321
  • 要做小程序?工具助手帮你你一天就完成,笔者在此分享了16小时完成一个完整小程序的经验,内有包括思路、准备到代码阶段的展示。 随着各种工具/轮子越来越多,做程序员可以说是越来越潇洒,…

    科研百科 2024年7月8日
    52
  • 什么是多项目管理 多项目管理是一种有效的管理方法,它允许多个项目同时在一个组织中进行,并且通过使用一个单一的控制平面来协调和管理这些项目。这种方法的应用范围非常广泛,包括建筑、工程…

    科研百科 6天前
    13
  • 低代码进销存序列号:简化企业管理的新趋势 近年来,随着信息技术的快速发展,企业管理也迎来了一场革命。低代码进销存序列号成为了简化企业管理的新趋势。低代码开发平台的出现,使得企业能够…

    科研百科 2024年3月3日
    77
  • 全国项目管理:现状与挑战 随着国家经济的发展,项目管理已经成为了一个日益重要的话题。项目管理对于企业的成功与否有着至关重要的作用,而全国项目管理则是中国项目管理的一个重要组成部分。…

    科研百科 2024年7月29日
    31
网站地图