[java]网络编程

news2024/11/17 20:22:38

网络编程概述

计算机网络:

把分布在不同地理区域的具有独立功能的计算机,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。 Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序。 Java提供的网络类库,可以实现网络连接,联网的底层细节被隐藏在 Java 的本机安装系统里,由 JVM 进行控制。并且 Java 实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境。

网络编程的目的

直接或间接地通过网络与其它计算机进行通讯。

网络编程中有两个主要的问题:

如何找到网络世界中的目标主机和程序(IP和端口) 找到主机后如何可靠高效地进行数据传输(协议)

网络模型

网络通信要素:IP,端口号,通信协议

网络编程有三个要素分别是:IP地址、端口号和通信协议.

IP地址(Internet Protocol Address)

是指互联网协议地址,又译为网际协议地址.网络中的计算机使用IP地址来进行唯一标识.

在Windows系统下,打开cmd,输入命令ipconfig,按回车即可查看。

本地回环地址(hostAddress):127.0.0.1 ,它代表设备的本地虚拟接口.

端口号

端口号是计算机中的应用程序的一个整数数字标号,用来区分不同的应用程序,不能重复 0 ~ 1024 未被系统使用或保留的端口号,0 ~ 65535为有效的端口号,也就是说我们要对一些程序定义端口号的时候,要选择1024 ~ 65535范围内的整数数字。 比如,MySQL的端口号是3306,SQLServer的端口号是1433,查了一下Oracle的端口号是1521。

网络通信协议(规则、规范、约定)

计算机网络中实现通信必须有一些约定,即通信协议,对速率、传输代码、代码结构、 传输控制步骤、出错控制等制定标准。

传输层协议中有两个非常重要的协议:传输控制协议TCP、用户数据报协议UDP

TCP

客户端向服务器端发送数据前,首先要建立链接(测试网络是否通畅)

正式传输数据

断开时要相互确认

使用TCP协议前,须先建立TCP连接,形成传输数据通道

传输前,采用“三次握手”方式,是可靠的

TCP协议进行通信的两个应用进程:客户端、服务端

在连接中可进行大数据量的传输

传输完毕,需释放已建立的连接,效率低

在断开时要进行“四次挥手”

UDP

把要发送的数据封装成一个数据包,不需要建立连接

数据包包含数据,对方IP,对方端口,只管发送即可,是否发送成功并不知道

每个数据报的大小限制在64K内

因无需连接,故是不可靠的

发送数据结束时无需释放资源,速度快

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1571258.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL】聚合函数和分组聚合

👦个人主页:Weraphael ✍🏻作者简介:目前学习计网、mysql和算法 ✈️专栏:MySQL学习 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论&#x1f4ac…

渗透测试靶机----Raven-1

渗透测试靶机----Raven-1 开启靶机,登录窗,平平无奇 开扫: 先看看ip 这里发现192.168.217.166 发现相关服务端口,这里看到80,还是老样子,先80入手打开发现一个熟悉的站点: 这里可以使用漏扫工具…

解密项目管理工具数据安全:防火防盗,保密有招

相关数据显示,2021年中国数字经济规模总量达到45.5万亿元,占到国内GDP总量的39.8%。数字经济已经渗入我们工作生活的方方面面,项目管理工具就是其中之一,在数据安全备受重视的今天如何保证项目管理工具的数据安全性?Zo…

C-开发 visual Studio扩展插件介绍-格式化插件Xaml Styler、CSharpier介绍(扩展插件安装方法)

C#开发 visual Studio扩展插件介绍 扩展插件安装方法Xaml StylerCSharpier 提高C#开发效率常用的插件 扩展插件安装方法 菜单栏点击“扩展”→“管理扩展”。 打开扩展页面 右上角搜索需要安装的插件,然后点击下载 安装完成后,根据提示关闭VS进行安…

MPEG-1 详解

MPEG-1 详解 MPEG-1 详解特点MPEG-1 中的运动补偿与 B 帧的引入MPEG-1 vs H.261MPEG-1 视频数据流的结构MPEG-1 视频压缩模式MPEG-1 视频解码框图MPEG-1 音频编码模式MPEG-1 audio layer 1MPEG-1 audio layer 2MPEG-1 audio layer 3 MPEG-1 音频编码框图MPEG-1 音频解码框图参考…

大数据实验四-MapReduce编程实践

一.实验内容 MapReduce编程实践: 使用MapReduce实现多个文本文件中WordCount词频统计功能,实验编写Map处理逻辑、编写Reduce处理逻辑、编写main方法。 二.实验目的 1、通过实验掌握基本的MapReduce编程方法。 2、实现统计HDF…

使用阿里云试用Elasticsearch学习:1.2 基础入门——数据输入和输出

什么是文档? 在大多数应用中,多数实体或对象可以被序列化为包含键值对的 JSON 对象。 一个 键 可以是一个字段或字段的名称,一个 值 可以是一个字符串,一个数字,一个布尔值, 另一个对象,一些数组值&#…

Linux+HA高可用24X7的安全保证

一. 介绍作为服务器,需要提供一定的24X7的安全保证,这样可以防止关键节点的宕机引起系统的全面崩溃。利用OpenSource开源软件,完成系统的高可靠双机热备方案。基于linux的 HA软件可靠稳定,比使用商业版本的HA软件降低成…

中国智慧城管哪家做的好?

智慧城市管理综合执法系统建立全市统一的法律法规、裁量基准、执法事项、执法文书和基础信息库,实现从获取线索、立案、调查、处理到结案全过程的信息化和文书制作的智能化。全面支持移动执法办案,提高执法效率。 技术架构: 微服务javasprin…

arm开发板移植工具mkfs.ext4

文章目录 一、前言二、手动安装e2fsprogs1、下载源码包2、解压源码3、配置4、编译5、安装 三、移植四、验证五、总结 一、前言 在buildroot菜单中,可以通过勾选e2fsprogs工具来安装mkfs.ext4工具: Target packages -> Filesystem and flash utilit…

【Python】免费的图片/图标网站

专栏文章索引:Python 有问题可私聊:QQ:3375119339 这里是我收集的几个免费的图片/图标网站: iconfont-阿里巴巴矢量图标库icon(.ico)INCONFINDER(.ico)

力扣刷题 二叉树的迭代遍历

题干 给你二叉树的根节点 root ,返回它节点值的 前中后序 遍历。 示例 1: 输入:root [1,null,2,3] 输出:[1,2,3]示例 2: 输入:root [] 输出:[]示例 3: 输入:root […

智慧农业新篇章:数字乡村引领农业现代化

随着信息技术的飞速发展,数字乡村正成为引领农业现代化的重要力量。智慧农业作为数字乡村的核心内容,以其高效、精准、可持续的特点,为农业现代化开辟了新篇章。本文将从智慧农业的内涵与特点、数字乡村在农业现代化中的引领作用、智慧农业发…

机器学习第33周周报Airformer

文章目录 week33 AirFormer摘要Abstract一、论文的前置知识1. 多头注意力机制(MSA)2. 具有潜变量的变分模型 二、文献阅读1. 题目2. abstract3. 问题与模型阐述3.1 问题定义3.2 模型概述3.3 跨空间MSA(DS-MSA)3.4 时间相关MSA&…

小程序如何设置余额充值和消费功能

小程序中设置余额充值和消费功能非常重要的,通过让客户在小程序中进行余额充值,不仅可以提高用户粘性,还可以促进消费,增加用户忠诚度。以下是如何在小程序中设置余额充值和消费功能的步骤: 1. **设计充值入口**&…

Cisco Nexus 9000v Switch, NX-OS Release 10.4(3)F

Cisco Nexus 9000v Switch, NX-OS Release 10.4(3)F 用于网络原型设计和学习研究的虚拟化数据中心交换机 请访问原文链接:https://sysin.org/blog/cisco-nexus-9000v/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.o…

【软件测试】测试常见知识点汇总

测试常见知识点汇总 一、什么是测试1.1 测试和调试的区别1.2 什么是需求1.2.1 用户需求1.2.2 软件需求 1.3 测试用例要素1.4 软件的生命周期及各阶段概述1.5 开发模型和测试模型(记住特点和适用场景)1.5.1 开发模型1.5.1.1 瀑布模型(自上而下…

微信小程序生命周期管理:从数据初始化到事件绑定

作为一个独立的应用开发平台,微信小程序提供了自己的生命周期机制,与我们熟悉的Vue.js框架有一些差异。掌握小程序生命周期的特点和使用技巧,对于开发高质量的小程序应用至关重要。深入理解和掌握小程序生命周期的使用技巧,将有助于我们构建出更加健壮和可维护的小程序应用。 小…

内网穿透的应用-如何在Android Termux上部署MySQL数据库并实现无公网IP远程访问

文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 Android作为移动设备,尽管最初并非设计为服务器,但是随着技术的进步我们可以将Android配置为生产力工具,变成一个随身…

tesseract-ocr一站式安装与使用

目录 前言 安装tesseract-ocr 添加环境变量 1、在path中添加 2、在系統變量中添加 3、验证是否添加成功 添加语言包 更多语言包下载 示例程序 前言 如果你遇到了:make sure the TESSDATA_PREFIX Failed loading language \‘chi_sim 那么就是语言包缺少这个&#xf…