`
阿尔萨斯
  • 浏览: 4170058 次
社区版块
存档分类
最新评论

Java学习系列(十八)Java面向对象之基于UDP协议的网络通信

 
阅读更多

UDP协议:无需建立虚拟链路,协议是不可靠的。
A节点以DatagramSocket发送数据包,数据报携带数据,数据报上还有目的目地地址,大部分情况下,数据报可以抵达;但有些情况下,数据报可能会丢失 --丢失了也不管。

先了解2个类:
DatagramSocket:相当于“码头”,此类表示用来发送和接收数据报的套接字。
DatagramPacket:代表数据报。

举例说明1:
服务器端

public class SimpleUDPServer {
	final static int SERVER_PORT = 30000;
	final static int PACKET_SIZE = 4092;

	public static void main(String[] args) {
		DatagramSocket datagramSocket = null;
		DatagramPacket datagramPacket = null;
		try {
			while (true) {
				// 创建datagramSocket,准备用于发送和接收数据报
				datagramSocket = new DatagramSocket(SERVER_PORT);
				datagramPacket = new DatagramPacket(new byte[PACKET_SIZE],
						PACKET_SIZE);
				// 使用一个空的packet去装datagramSocket接收到的数据
				datagramSocket.receive(datagramPacket);
				// 将datagramPacket中接收到的字节数组转换为字符串,然后输出
				System.out.println(new String(datagramPacket.getData(), 0,
						datagramPacket.getLength()));
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
客户端:
public class SimpleUDPClient {
	final static int SERVER_PORT = 30000;

	public static void main(String[] args) {
		DatagramSocket datagramSocket = null;
		DatagramPacket datagramPacket = null;
		try {
			// 创建datagramSocket,准备用于发送和接收数据报
			// datagramSocket使用动态端口(以便选择一个空闲的端口)
			datagramSocket = new DatagramSocket();
			String content = "Java学习系列(十八)Java面向对象之基于UDP协议的网络通信";

			// 创建一个有数据、有目的地址的datagramPacket
			datagramPacket = new DatagramPacket(content.getBytes(), content
					.getBytes().length, InetAddress.getByAddress(new byte[] {
					(byte) 192, (byte) 168, 0, 8 }), SERVER_PORT);
			// 发送数据报
			datagramSocket.send(datagramPacket);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
MulticastSocket将数据报发送到“广播地址”,数据报会被自动“广播”到所有加入该IP地址的客户端。
TTL是控制数据可以跨过多少个网段。
--当ttl为0时,说明该数据报只能停留在本机;
--当ttl为1时,说明数据报只能停留在当前局域网。
--当ttl为32时,说明数据报只能停留在本站点的网络。
--当ttl为64时,说明数据报只能停留在本地区。
--当ttl为128时,说明数据报只能停留在本大洲(如亚洲)。
--当ttl为255时,说明数据报达到全球。


分享到:
评论

相关推荐

    第13章-Java网络编程-Java面向对象程序设计教程-微课视频版-程杰-清华大学出版社.pptx

    13.1 TCP/IP协议简介 13.2 网络开发中的常用工具类 13.3 面向连接的TCP通信 13.4 无连接的UDP通信 13.5 UDP广播通信 13.6 局域网通信工具 第13章 Java网络编程 第13章-Java网络编程-Java面向对象程序设计教程-微课...

    基于Java的视频会议系统(软件程序+WORD论文文档).zip

    基于RTP协议的RTP应用程序框架为实现流媒体在网络中实时传输提供了Java程序框架,应用它可方便的实现多媒体数据流在网络中的实时传输。实时传输协议RTP是在Internet网上针对多媒体数据流的一种传输协议,RTP被定义为...

    java源码包---java 源码 大量 实例

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    广州大学网络编程实验二代码(UDP编程)

    UDP协议在IP协议之上添加的功能虽然非常有限,但...通过完成本实验项目,巩固以前所学的面向对象的分析和设计技术,掌握UDP套接字的编程范型,熟悉Java对UDP协议的支持类的编程接口,并能熟练运用于UDP协议应用编程中。

    JAVA上百实例源码以及开源项目源代码

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    Java基础知识点总结.docx

    网络基础之网络协议篇 111 UDP传输 124 TCP传输 126 十八、 反射技术 127 十九、 Ajax原理及实现步骤★★★★★ 130 Ajax概述 130 Ajax工作原理 130 Ajax实现步骤 130 详解区分请求类型: GET或POST 131 $.ajax标准...

    JAVA上百实例源码以及开源项目

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    java各知识点详细总结.docx

    Java基础语法:Java是一种面向对象编程语言,它支持类、对象、继承、多态等概念。Java语法包括变量、数据类型、运算符、控制...Java中的网络编程可以通过Java Socket API来实现,可以进行TCP、UDP等协议的网络通信。

    42道Java网络编程相关面试题含答案(很全)

    通过Socket类,可以实现基于TCP和UDP协议的网络通信。TCP是一种面向连接的协议,提供了可靠的通信服务;而UDP是无连接的协议,不保证消息的可靠传输。 ServerSocket类:ServerSocket类用于在服务器端监听客户端连接...

    java源码包4

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    java源码包3

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    java源码包2

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    java高手真经 光盘源码

    javaexception.zip 07.Java面向对象编程扩展(计算器异常捕捉实例) 第3部分(5个程序包) javaio.zip 09.Java输入/输出流 javavi.zip 09.Java输入/输出流上机作业参考(文本编辑器) javathread.zip 10.Java多...

    Java高手真经(编程基础卷)光盘全部源码 免积分

    javaexception.zip 07.Java面向对象编程扩展(计算器异常捕捉实例) 第3部分(5个程序包) javaio.zip 09.Java输入/输出流 javavi.zip 09.Java输入/输出流上机作业参考(文本编辑器) javathread.zip 10.Java多...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    Java编程老鸟潜心写作,奉献高效率的Java学习心得 完全站在没有编程经验读者的角度,手把手教会读者学习Java 配16小时多媒体教学视频,高效、直观 一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让...

    java网络编程技术课程设计.doc

    TCP网络通信程序设计与实现 摘要: 目前,基于TCP/IP协议的网络得到了普及和飞速的发展,Windows下的网络程序越来越 显得重要。利用TCP/IP协议提供的编程接口———Socket(套接字)可以开发出TCP/IP应用程 序。正确的...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    2个目标文件 摘要:Java源码,网络相关,UDP 基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式...

    Java高手真经(编程基础卷)光盘全部源码

    javaexception.zip 07.Java面向对象编程扩展(计算器异常捕捉实例) 第3部分(5个程序包) javaio.zip 09.Java输入/输出流 javavi.zip 09.Java输入/输出流上机作业参考(文本编辑器) javathread.zip 10.Java多线程...

Global site tag (gtag.js) - Google Analytics