java笔记之网络知识-----UDP

网络编程: 网络编程主要用于解决计算机与计算机(手机、平板..)之间的数据传输问题。
网络编程: 不需要基于html页面就可以达到数据之间的传输。 比如: feiQ , QQ , 微信....

网页编程: 就是要基于html页面的基础上进行数据的交互的。 比如: 珍爱网、 oa(办公自动化)、 高考的报告系统...

计算机网络: 分布在不同地域 的计算机通过外部设备链接起来达到了消息互通、资源共享的效果就称作为一个计算机网络。

网络通讯的三要素:
1. IP
2. 端口号。
3. 协议.

192.168.10.1
IP地址: IP地址的本质就是一个由32位的二进制数据组成的数据。 后来别人为了方便我们记忆IP地址,就把IP地址切成了4份,每份8bit. 2^8 = 0~255
00000000-00000000-00000000-00000000

IP地址 = 网络号+ 主机号。

IP地址的分类:
A类地址 = 一个网络号 + 三个主机号 2^24 政府单位
B类地址 = 两个网络号+ 两个主机号 2^16 事业单位(学校、银行..)
C类地址= 三个网络号+ 一个主机号 2^8 私人使用..

InetAddress(IP类)

常用的方法:
getLocalHost(); 获取本机的IP地址
getByName("IP或者主机名") 根据一个IP地址的字符串形式或者是一个主机名生成一个IP地址对象。 (用于获取别人的IP地址对象)

getHostAddress() 返回一个IP地址的字符串表示形式。
getHostName() 返回计算机的主机名。
端口号是没有类描述的。
端口号的范围: 0~65535
从0到1023,系统紧密绑定于一些服务。
1024~65535 我们可以使用....

网络通讯的协议:
udp通讯协议
tcp通讯协议。

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

public class Demo01 {

    public static void main(String[] args) throws UnknownHostException {
        InetAddress address = InetAddress.getLocalHost();
        String name=address.getHostName();
        System.out.println("主机名:"+name);
        System.out.println("IP地址:"+address.getHostAddress());
        InetAddress address2 =InetAddress.getByName(name);
        System.out.println("通过主机名称获取的IP:"+address2.getHostAddress() );

        System.out.println("通过主机名称获取的主机名:"+address2.getHostName());

      InetAddress[] arr = InetAddress.getAllByName("www.baidu.com");//域名
      System.out.println(Arrays.toString(arr));

    }

}

输出结果:

主机名:Allenlor
IP地址:192.168.206.1
通过主机名称获取的IP:192.168.206.1
通过主机名称获取的主机名:Allenlor

[www.baidu.com/220.181.111.188, www.baidu.com/220.181.112.244]

UDP相关介绍

在java中网络通讯业称作为Socket(插座)通讯,要求通讯 的两台器都必须要安装Socket。

不同的协议就有不同 的插座(Socket)

UDP通讯协议的特点:
1. 将数据极封装为数据包,面向无连接。
2. 每个数据包大小限制在64K中
3.因为无连接,所以不可靠
4. 因为不需要建立连接,所以速度快
5.udp 通讯是不分服务端与客户端的,只分发送端与接收端。
比如: 物管的对讲机, 飞Q聊天、 游戏...
udp协议下的Socket:

DatagramSocket(udp插座服务)
DatagramPacket(数据包类)
DatagramPacket(buf, length, address, port)

buf: 发送的数据内容
length : 发送数据内容的大小。
address : 发送的目的IP地址对象
port : 端口号。

发送端的使用步骤:
1. 建立udp的服务。
2. 准备数据,把数据封装到数据包中发送。 发送端的数据包要带上ip地址与端口号。
3. 调用udp的服务,发送数据。
4. 关闭资源。

时间: 2024-11-02 17:26:34

java笔记之网络知识-----UDP的相关文章

12.2-全栈Java笔记: TCP协议和UDP协议

 区别 在网络通讯中,TCP方式就类似于拨打电话,使用该种方式进行网络通讯时,需要建立专门的虚拟连接,然后进行可靠的数据传输,如果数据发送失败,则客户端会自动重发该数据.而UDP方式就类似于发送短信,使用这种方式进行网络通讯时,不需要建立专门的虚拟连接,传输也不是很可靠,如果发送失败则客户端无法获得. 这两种传输方式都是实际的网络编程中进行使用,重要的数据一般使用TCP方式进行数据传输,而大量的非核心数据则都通过UDP方式进行传递,在一些程序中甚至结合使用这两种方式进行数据的传递. 由于TCP需

java基础篇---网络编程(UDP程序设计)

UDP程序设计 在TCP的索引操作都必须建立可靠地连接,这样一来肯定会浪费大量的系统性能,为了减少这种开销,在网络中又提供了另外一种传输协议---UDP,不可靠的连接,这种协议在各个聊天工具中被广泛的应用. 咋UDP开发中使用DatagramPacket包装一条要发送的信息,之后使用DatagramSocket用于完成信息的发送操作. 例如:现在使用聊天工具进行聊天的功能,那么A的发送的信息B不一定可以接受的到,因为使用的是UDP的协议. UDP中主要是使用数据报协议发送的. DatagramP

Java笔记(9)-网络编程

不必说碧绿的菜畦,光滑的石井栏,高大的皂荚树,紫红的桑葚:也不必说鸣蝉在树叶里长吟,肥胖的黄蜂伏在菜花上,轻捷的叫天子(云雀)忽然从草间直窜向云霄里去了. 鲁迅 -–<从百草味到三味书屋> ---- [TOC] Java网络编程 URL 类 URL统一资源定位符 一个URL对象通常包含最基本的3部分信息:协议,地址,资源. 示例 用字节流读取流输入流中的数据时,由于汉字是两个字节,如果读取的长度不合适,就会有乱码,可以指定编码格式解决,增加一次读取的数据也可以解决, 用字符流也可以 中文乱码问

JAVA学习之网络编程UDP篇

DatagramSocket构造方法摘要,总共有5个构造方法DatagramSocket() 构造数据报套接字并将其绑定到本地主机上任何可用的端口. DatagramSocket(DatagramSocketImpl impl) 创建带有指定 DatagramSocketImpl 的未绑定数据报套接字. DatagramSocket(int port) 创建数据报套接字并将其绑定到本地主机上的指定端口. DatagramSocket(int port, InetAddress laddr) 创建

Java笔记 - 线程基础知识

前言 进程是一个执行中程序的实例,是操作系统进行资源分配和调度的一个独立单元.线程是进程中一个单一的程序控制流,是 CPU 调度和分派的基本单元.进程在执行时拥有独立的内存空间,进程中的线程可以共享进程的内存空间.在 Java 的世界中,进程可以拥有多个并发执行的线程,多线程是实现并发任务的方式. 线程创建和启动 1. 实现 java.lang.Runnable 接口 定义线程执行的任务,需要实现 Runnable 接口并编写 run 方法. public interface Runnable

12.7-全栈Java笔记:Java网络编程(五)

UDP通讯的实现 1.DatagramSocket:用于发送或接收数据包 当服务器要向客户端发送数据时,需要在服务器端产生一个DatagramSocket对象,在客户端产生一个DatagramSocket对象.服务器端的DatagramSocket将DatagramPacket发送到网络上,然后被客户端的DatagramSocket接收. DatagramSocket有两种构造函数.一种是无需任何参数的,常用于客户端.另一种需要指定端口,常用于服务器. 常用方法:send.receive. cl

12.1-全栈Java笔记:网络编程的基本概念

什么是计算机网络? 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大.功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件.软件.数据信息等资源. 计算机网络的主要功能: 资源共享 信息传输与集中处理 均衡负荷与分布处理 综合信息服务 (www/综合业务数字网络 ISDN) 什么是网络通信协议? 计算机网络中实现通信必须有一些约定即通信协议,对速率.传输代码.代码结构.传 输控制步骤.出错控制等制定标准. 网络通信接口: 为了使两个结点之间能进行对话,必须在

Java笔记(26):网络编程

1.网络模型概述和图解 网络模型7层概述:1.物理层:主要定义物理设备标准,如网线的接口类型.光纤的接口类型.各种传输介质的传输速率等.它的主要作用是传输比特流(就是由1.0转化为电流强弱来进行传输,到达目的地后在转化为1.0,也就是我们常说的数模转换与模数转换).这一层的数据叫做比特. 2. 数据链路层:主要将从物理层接收的数据进行MAC地址(网卡的地址)的封装与解封装.常把这一层的数据叫做帧.在这一层工作的设备是交换机,数据通过交换机来传输. 3. 网络层:主要将从下层接收到的数据进行IP地

Java读书笔记(5)-网络编程

2016-1-3 ch17 网络编程 网络编程的基础知识 网络基础知识(拓扑结构,传输介质,通信协议,TCP/IP协议) IP地址和端口号 A,B,C,D,E五类IP 公认端口(0~1023),注册端口(1024~49151),动态和私有端口(49152~65535) Java的基本网络支持 使用InetAddress 获取InetAddress实例 getByName(String Host) getByAddress(byte[] addr) InetAddresss类提供了一个isReac