java udp 同一个端口实现收发_Java网络编程之UDP协议

伙伴们注意了!

小编在这里给大家送上关注福利:

搜索微信公众号“速学Java”关注即可领取小编精心准备的资料一份!

今天我们来聊聊

网络编程这部分的内容

网络编程

1)计算机网络

是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

2)网络编程

就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。

网络编程三要素之IP概述

每个设备在网络中的唯一标识

每台网络终端在网络中都有一个独立的地址,我们在网络中传输数据就是使用这个地址。

ipconfig:查看本机IP地址

d81ee0ffd7b5f483a392bbb308d6f4de.png

ping:测试连接

1d377f408ce9c8095ebb0ecca6f48a67.png

这个结果就表示连接成功了

本地回路地址:127.0.0.1

IPv4:4个字节组成,4个0-255组成。

一共大概42亿,30亿都在北美,亚洲4亿。2011年初已经用尽。

IPv68组,每组4个16进制数。

1a2b:0000:aaaa:0000:0000:0000:aabb:1f2f

中间的“0”可以省略~写成:

1a2b::aaaa:0000:0000:0000:aabb:1f2f

或1a2b:0000:aaaa::aabb:1f2f

或1a2b:0000:aaaa::0000:aabb:1f2f

或1a2b:0000:aaaa:0000::aabb:1f2f

网络编程三要素之端口号

每个程序在设备上的唯一标识

每个网络程序都需要绑定一个端口号,传输数据的时候除了确定发到哪台机器上,还要明确发到哪个程序。

端口号范围从0-65535

编写网络应用就需要绑定一个端口号,尽量使用1024以上的,1024以下的基本上都被系统程序占用了。

常用端口

mysql: 3306

oracle: 1521

web: 80

tomcat: 8080

网络编程三要素之协议

为计算机网络中进行数据交换而建立的规则、标准或约定的集合。

UDP

面向无连接,数据不安全,速度快。不区分客户端与服务端。

就比如我们发短信,一般就是直接把信息编好久发过去,不管那边是什么情况、能不能收到。

TCP

面向连接(三次握手),数据安全,速度略低。分为客户端和服务端。

三次握手:

客户端先向服务端发起请求, 服务端响应请求, 传输数据

就好像我们取快递的时候,先给小哥一个暗号“取快递”,小哥听到了(第一次握手)然后给你一个回应 “报一下手机号”,你听到(第二次握手)了之后就报了号码给快递小哥(第三次握手)。这样确认之后就可以把快递给你了~

Socket通信

Socket套接字概述:

网络上具有唯一标识的 IP地址 和 端口号 组合在一起才能构成唯一能识别的标识符套接字。

通信的两端都有 Socket。网络通信其实就是 Socket 间的通信。数据在两个Socket 间通过 IO流 传输。

Socket 在应用程序中创建,通过一种绑定机制与驱动程序建立关系,告诉自己所对应的 IP 和 port。

UDP传输

发送Send

总共分四步:

1)创建DatagramSocket, 随机端口号

2)创建DatagramPacket, 指定数据, 长度, 地址, 端口

3)使用DatagramSocket发送DatagramPacket

4)关闭DatagramSocket

6769a75b102656235cfd931505362e1a.png

接收Receive

总共分四步:

1)创建DatagramSocket, 指定端口号

2)创建DatagramPacket, 指定数组, 长度

3)使用DatagramSocket接收DatagramPacket

4)关闭DatagramSocket

c3da408cc678b16152bce6027a3447c8.png

效果:

c735cc3ecf845e28e0d97374d636496a.png

UDP传输多线程

发送和接收在一个窗口完成

dc142433d70f8f2c420711ecb62ee5fb.png
c4233e0dfbb5aa150df525aba1be81e8.png
906f2d37c29bb764622773c82f418525.png

那么就先到这里了

再见了

最后,想学习Java的小伙伴们!

关注“速学java”公众号就可以拿到一份我为大家准备的Java学习资料!

对Java感兴趣的小伙伴也可以加 小编V❤: suxuejava

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

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

相关文章

java 多态_Java面向对象 —— 多态

前两天已经相继介绍了Java面向对象的三大特性之中的封装、继承,所以今天就介绍Java面向对象的三大特性的最后一项,多态~首先讲一下什么是多态,以及多态需要注意的细节 什么是多态:一个对象具备多种形态,也可以理解为事…

vb6 方法‘ ’作用于对象 失败_JS基础入门-对象的使用

今日背诵小纸条对象是一组属性方法的组合,其中可包含基本值、对象和函数对象的定义1 对象字面量var hero{name: ‘产品小姐姐’,age: 16,weapon: [ ‘头盔’, ‘靴子’, ‘盔甲 ],sayHi: function ( ) {console.log( this.name ’…

无法从套接字读取更多的数据 oracle_小伙面试时被追问数据库优化,面试前如何埋点反杀?

前言周五的早高峰, 各地软件园地铁站里中出现了不少穿着长袖加绒格子衫, 背双肩电脑包的年轻码农, 现在节气正值 [ 小雪 ] , 11月的全国性突然降温 , 让经历过996摧残的猿们一出地铁站就冻的打了个激灵 , 很庆幸的告诉大家距离放年假还剩不到 37 个工作日, 要买火车票的赶紧预约…

qlineedit限制输入数字_Excel单元格限制录入,实用小技巧

在填写资料表格的时候,为了不防止出错,会在单元格中设置一些技巧,限制对方输入内容,这样可以更好的预防输入错误。那么单元格限制输入技巧是如何实现的呢?1、限制只能录入数字比如单元格是我们要用来填写年龄数据等数字…

java二维数组 内存分配_java中二维数组内存分配

区分三种初始化方式:格式一:数据类型[][] 数组名 new 数据类型[m][n];m:表示这个二维数组有多少个一维数组。n:表示每一个一维数组的元素有多少个。//例:int arr[][]new int[3][2];如下图格式二:数据类型[][] 数组名 new 数据类…

word公式插件_如何快速输入复杂的数学公式?这里有 3 个实用技巧

不管你是不是科研狗,都可能遇到过在文章中插入公式。而我们最常用的就是使用 Word 自带的公式编辑器输入,Word 公式可以很好地匹配文章的格式,自然地插入文中。有时候处理一个公式简单,但如果你要输入大量公式,键盘、鼠…

java观察者模式本质_6.[研磨设计模式笔记]观察者模式

1.定义定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。2.解决问题——订阅报纸看起来订阅者是直接根有据打交道,但实际上,订阅者的订阅数据是被邮寄传递到报社&#xff0…

粒子群算法tsp java_粒子群算法解决TSP问题

1. 粒子群算法简介粒子群算法(particle swarm optimization,PSO)由Kennedy和Eberhart在1995年提出,属于进化算法的一种,是通过对模拟鸟群扑食行为设计的。基本思想:从随机解出发,通过迭代寻找最优解,通过适…

hive mysql性能_Hive数据库安全审计功能

【Hive数据库安全审计简介】Hive数据库安全审计是一款基于数据库通讯协议准确分析和SQL完全解析技术的数据库安全审计系统。实现了对数据库操作、访问用户及外部应用用户的审计,可以用于安全合规、用户行为分析、运维监控、风控审计、事件追溯等与数据库安全相关的管…

linux安装sz rz_超级好用的文件传输命令rz与sz

做生物信息经常需要在本地客户端与服务器之间进行文件的传输,例如将要分析的数据传到Linux服务器上,进行分析,分析结束之后将结果下载到本地windows系统进行查看。以前我们都推荐大家使用比较稳定,并且支持断点续传的Filezilla或者…

visual studio 按钮判断管理员和用户_用户管理的设计原则

后台的使用者通常是企业的各类权限的管理员,通过对用户管理的合理设计,让管理员准确、高效地完成既定任务,来实现用户管理的价值。后台产品的使命是为企业提升效率,降低成本,而用户管理是后台的核心部分,用…

windows。forms.timer设置第一次不等待_面试官:换人!他连 TCP 这几个参数都不懂(一)...

前言TCP 性能的提升不仅考察 TCP 的理论知识,还考察了对于操作系统提供的内核参数的理解与应用。TCP 协议是由操作系统实现,所以操作系统提供了不少调节 TCP 的参数。如何正确有效的使用这些参数,来提高 TCP 性能是一个不那么简单事情。我们需…

微信网页开发教程 php,PHP实现微信网页授权开发教程,php授权教程_PHP教程

PHP实现微信网页授权开发教程,php授权教程微信网页授权是服务号才有的高级功能,开发者可以通过授权后获取用户的基本信息;在此之前,想要获取消息信息只能在用户和公众号交互时根据openid获取用户信息;而微信网页授权可…

lstm原文_LSTM模型与水文模型在径流模拟中的比较

学术简报题目:Comparison of Long Short Term Memory Networks and the Hydrological Model in Runoff Simulation作者:Hailin You1,Hongxiang Fan2,Ligang Xu2,Yongmi Wu1,*,Lizhen Liu2 and Zhong Yao1作者单位:1 Poyang Lake Research Center, Jiangxi Academy of Sciences,…

php 安装 bzip2,php如何安装bzip2

php安装bzip2的方法:首先安装扩展依赖的系统bzip2开发库;然后编译安装php源码包目录下的“ext/bz2”扩展;最后修改“php.ini”配置文件即可。php安装bzip2安装扩展依赖的系统bzip2开发库sudo yum install bzip2-devel编译安装php源码包目录下…

mysql 触发器不能同时 insert or update or delete_MySQL6:触发器

什么是触发器MySQL的触发器(trigger)和存储过程一样,都是嵌入到MySQL中的一段程序。触发器是由事件来触发某个操作,这些事件包括INSERT、UPDATE和DELETE语句。如果定义了触发程序,当数据库执行这些语句的时候就会激发触发器执行相应的操作&am…

mysql 强制使用索引_快速找出MySQL数据库冗余索引和未使用索引

冗余索引和未使用索引的危害随着上线的业务越来越多,在MySQL数据库中建的表也会越来越多,为提高查询访问速度,会创建相应的索引。但是由于技术人员的水平参差不齐,业务下线,代码逻辑变更等原因,导致线上数据…

java第一次课必修实验答案,Java第一次实验报告

北京电子科技学院(BESTI)实验报告课程:Java实验 班级:201352 姓名:池彬宁 学号:20135212成绩: 指导教师:娄佳鹏 实验日期:15.04.14实验密级: 预习程度…

在matlab中求协方差,matlab里面的求协方差函数

一:matlab里面关于方差和协方差的几点需要注意的求均值的函数:mean求方差的函数:var标准差:方差:求协方差的函数:cov1 如果a,b是向量,则:cov(a,b)相当于是[D(a),cov(a,b);cov(b,a),D…

手机浏览器网址_「效率集」自定义网址导航高级功能介绍

「效率集」是国内仅有的几家提供了个性自定义导航的网站,功能比hao123强,用户体验优于百度导航首页,且支持聚合搜索,方便用户从不同渠道(网页,微博,微信公众号,知乎,维基…