网络编程,UDP通信程序,TCP通信程序

news2024/9/24 11:28:41

一、网络编程

网络编程概述

网络编程 :

        在网络[通信协议]下,不同计算机上运行的程序,可以进行[数据传输]

 

思考:      

         A电脑中的QQ,发送消息给B电脑中的QQ。那么需要知道[哪些条件]才能发送? 

                                                                       

                   在这个故事场景下,你要怎么样才能找到这个女孩并把钱取出来?      

 第一步:

          你要先找到这家银行,也就是银行的地址

 

 第二步:

          找到这个女孩在几号柜台工作

第三步:

          按照银行的规则,填写取款单 

 在这个小故事中,找到这个女孩并成功取钱的要素有哪些?

银行的地址                            ---- 银行的地址

柜台号                                   ---- 通过柜台跟客户交流并处理业务

填写取款单的规则                 ----填写取款单的规则

 网络编程三要素

IP地址

        设备在网络中的地址,是唯一的标识。

端口

        应用程序在设备中唯一的标识。

协议

        数据在[网络中传输]的规则,常见的协议有UDP协议和TCP协议。

IP

IP:全称”互联网协议地址”,也称IP地址。是分配给上网设备的数字标签。常见的IP分类为:ipv4和ipv6

 IPv4:

IP地址

IPv6:

由于互联网的蓬勃发展,IP地址的需求量愈来愈大,而IPv4的模式下[IP的总数]是有限的。               采用128位地址长度,分成8组。

 常用命令:

ipconfig:查看本机IP地址

 

 

ping IP地址:检查网络是否连通

 

不通 

 

特殊IP地址:

127.0.0.1:是回送地址也称本地回环地址,可以代表本机的IP地址,一般用来测试使用

加一个ipv4的分类,需要讲A-E,IP组成为:网络号 + 主机号 广域网 城域网 局域网

最大的广域网是因特网 

添加组播地址,广播地址

InetAddress 的使用:

为了方便我们对IP地址的获取和操作,Java提供了一个类[InetAddress] 供我们使用

InetAddress:此类表示Internet协议(IP)地址

方法名

说明

static InetAddress getByName​(String host)

确定主机名称的IP地址。主机名称可以是机器名称,也可以是IP地址

String getHostName​()

获取此IP地址的主机名

String getHostAddress​()

返回文本显示中的IP地址字符串

 

package com.socketmodule.socketdemo1;

import java.net.InetAddress;
import java.net.UnknownHostException;

//static InetAddress getByName(String host)
//                          确定主机名称的IP地址。主机名称可以是机器名称,也可以是IP地址
//String getHostName()     获取此IP地址的主机名
//String getHostAddress()  返回文本显示中的IP地址字符串
public class InetadressDemo1 {
    public static void main(String[] args) throws UnknownHostException {
        //getByName(String host)确定主机名称的IP地址。主机名称可以是机器名称,也可以是IP地址
        InetAddress address = InetAddress.getByName("沉迷代码");
        //String getHostName()     获取此IP地址的主机名
        String hostName = address.getHostName();
        System.out.println("主机名为" + hostName);
        //String getHostAddress()  返回文本显示中的IP地址字符串
        String ip = address.getHostAddress();
        System.out.println("IP为" + ip);
    }
}

 

端口 


端口:应用程序在设备中唯一的标识。

端口号:用两个字节表示的整数,它的取值范围是0~65535。

              其中0~1023之间的端口号用于一些知名的网络服务或者应用。

             我们自己使用1024以上的端口号就可以了。

注意:一个端口号只能被一个应用程序使用。 

协议

协议:计算机网络中,连接和通信的规则被称为网络通信协议

UDP协议

        用户数据报协议(User Datagram Protocol)

        UDP是面向无连接通信协议。(音频,视频,普通数据会使用用UDP,因为速度快,丢失一些数据没有太大的影响)

         速度快,有大小限制一次最多发送64K,数据不安全,易丢失数据。

TCP协议 

        传输控制协议 (Transmission Control Protocol)

        TCP协议是面向连接的通信协议。

  速度慢,没有大小限制,数据安全。

小结 

网络编程:就是可以让[两台计算机]进行[数据交互]。

网络编程三要素:

     IP:设备在网络中唯一的标识。  

     端口号:应用程序在设备中唯一的标识。

      协议:数据在传输过程中遵守的规则。

UDP通信程序

 

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

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

相关文章

GitHub 的基本使用

文章目录一、使用前工作二、GitHub 的基本使用一、使用前工作 下载 uu 加速器,用于访问 GitHub 网站(有魔法工具的小伙伴请忽略);uu 加速器下载安装完毕后搜索框搜索学术资源并点击加速(如图1.2.1)&#xf…

【Android App】人脸识别中使用Opencv比较两张人脸相似程度实战(附源码和演示 超详细)

需要全部代码请点赞关注收藏后评论区留言私信~~~ 一、比较两张人脸的相似程度 直方图由一排纵向的竖条或者竖线组成,横轴代表数据类型,纵轴代表数据多少。 图像直方图经常应用于特征提取、图像匹配等方面。 假设有两幅图像,它们的直方图很相…

Vue项目devServer.proxy代理配置详解

Vue项目devServer.proxy代理配置详解目录概述需求:设计思路实现思路分析1..config.js文件中,引入依赖项2.devServer.proxy 可以是一个指向开发环境 API 服务器的字符串3.更多控制行为参考资料和推荐阅读Survive by day and develop by night. talk for i…

语言模型也会“地域黑”?实验表明ALBERT最能黑,BART最友善

文 | ZenMoore前言今天我们来谈论一个不那么硬核的问题:预训练语言模型中的歧视与偏见(bias)。这个问题虽然不像技术问题那样核心,但仍然非常重要。想象一下:你接到了一笔外交级别的订单,要做一个生成语言模型,先不论效…

NNDL 实验七 循环神经网络(3)LSTM的记忆能力实验

文章目录6.3 LSTM的记忆能力实验6.3.1 模型构建6.3.1.1 LSTM层6.3.1.2 模型汇总6.3.2 模型训练6.3.2.1 训练指定长度的数字预测模型6.3.2.2 多组训练6.3.2.3 损失曲线展示【思考题1】LSTM与SRN实验结果对比,谈谈看法。(选做)6.3.3 模型评价6.…

Android OpenGL ES 学习(六) – 使用 VBO、VAO 和 EBO/IBO 优化程序

OpenGL 学习教程 Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学习(三) – 绘制平面图形 Android OpenGL ES 学习(四) – 正交投屏 Android OpenGL ES 学习(五) – 渐变色 代码工程地址: https://…

【ARIMA时序预测】基于ARIMA实现时间序列数据预测附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

Unity常用的三种拖拽方法(内置方法 + 接口 + Event Trigger组件)

目录 内置方法OnMouseDrag【对象含有Collider组件】 配对小游戏 Event Trigger组件 接口 窗口小案例 内置方法OnMouseDrag【对象含有Collider组件】 OnMOuseOver()检测鼠标是否进入到这个2D贴图 当鼠标进入或离开2D贴图,会相应的放大、缩小 private void OnMo…

[附源码]计算机毕业设计springboot校园快递柜存取件系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

山外山通过注册:拟募资12亿 大健康与华盖信诚是股东

雷递网 雷建平 12月2日重庆山外山血液净化技术股份有限公司(简称:“山外山”)日前通过注册,准备在科创板上市。山外山计划募资12.47亿元,其中,8.63亿用于血液净化设备及高值耗材产业化项目,1.64…

【Python基础系列】Part2. 列表

二、列表 1.列表介绍 定义:列表是由一系列按照一定顺序排列的元素组成。 Python中用[]表示列表,用,分割元素。 number ["one", "two", "three"] print(number)# [one, two, three]列表中的元素可以是不同类型 numbe…

netsh interface portproxy端口转发,从本地端口到本地端口不起作用的解决办法

开启IP V6 你虽然可能用不到IPV6,但是有些系统是需要用到IPV6的dll来做端口转发的. 如图,确保你联网的连接已经开启 IPV6 检查IP Helper服务 打开任务管理器 点击 服务 查看iphlpsvc是否启动状态,点击右键如果显示的是停止,就是已经启动了. 如果显示"启动服务"则…

drools规则引擎并发结果不准确问题记录

思路 首先,drools的整体思路比较简单,一个是加载,一个是执行! 加载:把一个比较复杂的关系运算想办法放到drools里面! 执行:让drools去计算这个复杂的运算,最终我们只需要取结果就好&…

广域网技术——SR-MPLS技术基础理论讲解

目录 SR-MPLS基础概念 使用Segment Routeing MPLS技术的优点 Segment Routeing MPLS的基本原理 SRGB Segment ID Bind SID 粘连标签 OSPF对于SR-MPLS的扩展 OSPF对邻接SID做了细分 10类LSA定义的TLV类型 10类LSA定义的TLV的报文格式 ISIS对SR-MPLS的扩展…

详解设计模式:模版方法模式

模板方法模式(Template Method Pattern)也被称为模板模式(Template Pattern),是在 GoF 23 种设计模式中定义了的行为型模式。 模板方法模式 定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使…

若依框架RuoYi项目运行启动教程【傻瓜式教程】

启动若依项目 1.官网下载代码 若依官网 若依在线文档 首先去官网下载代码 链接到码云下载,要么用git下载要么压缩包下载。 然后再IDEA打开项目 想要运行就要搭建好环境 2.搭建若依环境 按照文档要求配置环境 JDK > 1.8 (推荐1.8版本) Mysql > 5.7.0 (推…

Stable Diffusion 2.0 来了

Stable Diffusion 一经发布,就立刻在业界掀起巨大的波浪。我个人后知后觉,直到 Stable Diffusion V1.4 版本发布,才接触 Stable Diffusion (之前使用的是 Disco Diffusion)。这段时间,SD 团队也没闲着,很快就发布了 V2…

【华为上机真题 2022】停车场车辆统计

🎈 作者:Linux猿 🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊! &…

【Python】推荐三个好玩的图像处理库

1. 引言 Python是一门高级语言,它可以实现很多功能。Python强大的原因是什么?某种程度上,在于它所拥有的现成的库,使其在编程的各个方向上都易于使用。在本文中,我将向大家展示一些Python库,这些库非常有用…

node.js的模块化

目录 一、模块化的概念 1.什么是模块化 2.编程领域中的模块化 二、node.js中模块的分类 三、require() 加载模块 四. 模块作用域 五、module对象 六、module.exports对象 七、exports对象 八、CommonJS规定: 九、关于包(第三方模块) 十、解决…