使用无连接的数据报(UDP) 进行通信
什么是Datagram?
数据报是网上传输的独立数据包 ,数据报是否能正确地到达目的地,到达的时间,顺序,内容的正确性均没有保障。
java中使用Datagram与DatagramPacket类
DatagramSocket类利用UDP协议来实现客户与服务器的Socket.
send():发送数据报
receive(): 接收数据报
以下为流程
以下为简单示例,不含一些异常处理、判空处理。
一、服务器端
package com.network;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UDPServer
{
public static void main(String[] args)throws Exception
{
DatagramSocket datagramSocket = new DatagramSocket(5678);
byte[] buffer = new byte[100];
DatagramPacket packet = new DatagramPacket(buffer,100);
datagramSocket.receive(packet);
byte[] data = packet.getData();
int i = packet.getLength();
String content = new String(data,0,i);
System.out.println("content from client : " + content);
int length = content.length();
String strLength = String.valueOf(length);
byte[] b = strLength.getBytes();
InetAddress address = packet.getAddress();
int port = packet.getPort();
DatagramPacket packet2 = new DatagramPacket(b,b.length,address,port);
System.out.println("length: " + new String(b,0,b.length));
datagramSocket.send(packet2);
datagramSocket.close();
}
}
二、客户端
package com.network;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UDPClient
{
public static void main(String[] args) throws Exception
{
DatagramSocket datagramSocket = new DatagramSocket();
String content = "hello world!";
byte[] buffer = content.getBytes();
InetAddress address = InetAddress.getByName("localhost");
DatagramPacket packet = new DatagramPacket(buffer,buffer.length,address,5678);
datagramSocket.send(packet);
byte[] b = new byte[100];
DatagramPacket packet2 = new DatagramPacket(b,100);
datagramSocket.receive(packet2);
byte[] b2 = packet2.getData();
int l = packet2.getLength();
String str = new String(b2,0,l);
System.out.println("length of string : " + str);
datagramSocket.close();
}
}
- 大小: 78.9 KB
分享到:
相关推荐
- “实战linux socket编程--示例源码”是实际的源代码文件,包含了各种Socket编程的实例,如简单TCP服务器、客户端、UDP通信等。 - 分析这些源码,可以帮助读者理解Socket编程的具体实现,包括如何建立连接、发送...
【Linux网络编程-网络基础-socket编程-高并发服务器】 在深入探讨Linux下的网络编程之前,我们首先要理解网络通信的基础概念——协议。协议是数据传输和解释的规则,它确保了不同设备之间的通信能顺利进行。例如,...
本篇文章将深入探讨UDP(User Datagram Protocol)协议的Socket编程实例,并对代码进行详细解析。UDP是一种无连接的传输层协议,它不保证数据包的顺序、可靠性和错误校验,但具有低开销、快速传输的特点,常用于实时...
- 虽然可以使用传统的read()和write()进行通信,但使用send()和recv()可以提供更精细的数据控制。 #### 四、Internet套接字类型 - **流式套接字**(Stream Socket): - 流式套接字基于TCP协议,提供面向连接的...
### 黑马_Linux网络编程-网络基础-socket编程-高并发服务器 #### 知识点概述 本篇文章旨在深入解读“黑马_Linux网络编程-网络基础-socket编程-高并发服务器”相关的核心概念和技术要点,包括网络基础知识、常用...
UDP通信则更直接,因为UDP是无连接的,所以只需创建一个UDP套接字,然后进行数据的发送和接收。 总的来说,OpenWrt和Luci的自定义开发涉及到软路由特性的利用,组件的编译选择,以及通过TCP和UDP进行的网络通信。...
在IT领域,网络编程是不可或缺的一部分,而基于UDP(User Datagram Protocol)的Socket编程是其中一种常见的技术。UDP是一种无连接、不可靠的传输协议,适用于实时数据传输或对速度有较高要求的应用场景。本实例将...
` 是Socket类的实例,用于进行UDP通信。 - `bool RunningFlag = false;` 控制通信循环的开关。 #### 获取本地IP的方法 `getIPAddress()` 方法通过调用 `Dns.GetHostByName()` 和 `Dns.GetHostName()` 来获取本地...
Socket编程在IT行业中是网络通信的核心技术之一,尤其在开发基于TCP/IP协议的客户端与服务器端交互的应用程序时,Socket是不可或缺的工具。本项目实战——"Socket编程-聊天室",旨在帮助开发者掌握如何利用Socket...
在这个项目中,主要关注的是使用UDP(用户数据报协议)进行通信的功能。UDP是一种无连接、不可靠的传输协议,与TCP(传输控制协议)相比,它更轻量级,适合于实时应用或对速度有较高要求的场景。 在开发过程中,...
在Socket编程中,使用UDP时,开发者同样需要指定IP地址和端口号,但无需建立连接,直接发送和接收数据报即可。 对于初学者,学习Socket编程首先需要理解网络的基本概念,包括IP地址、端口号和协议。然后,你需要...
在进行基于UDP的Socket编程时,主要涉及以下几个核心概念和步骤: 1. **创建Socket**: 使用`socket()`函数创建一个Socket对象,指定协议族(通常为AF_INET表示IPv4)和协议类型(SOCK_DGRAM表示UDP)。 2. **绑定...
"华科-计算机网络实验报告-Java_Socket编程-网络组建实验.docx" 这份实验报告主要涵盖了计算机网络实验的两个部分:Socket 编程和网络组建实验。下面是对这两部分的详细解释和知识点总结: Socket 编程 Socket ...
UDP是一种无连接的、不可靠的传输层协议,它提供了简单高效的数据报服务,适用于实时数据传输如音频、视频等对数据完整性要求不高的场景。Socket则是应用层与传输层之间的接口,它允许程序员通过编程进行网络通信。 ...
Socket编程是网络编程的基础,而UDP是一种无连接、不可靠的传输协议,适用于对实时性要求较高的应用场景。 首先,我们需要了解Socket API的基本概念。Socket是操作系统提供的接口,它允许应用程序通过网络进行通信...
TCP(Transmission Control Protocol)提供面向连接、可靠的字节流服务,而UDP(User Datagram Protocol)是无连接、不可靠的数据报服务。TCP提供顺序传输、流量控制、错误校验等功能,适合需要高可靠性传输的场景;...
- UDP是无连接的、不可靠的传输层协议,它不保证数据的顺序或完整性,也不进行拥塞控制。 - UDP速度较快,因为它没有TCP的连接建立、确认和维护过程。 - UDP常用于实时应用,如在线游戏、视频会议和DNS查询,因为...
总结来说,"C# WinForm TCP通信 UDP通信 Socket通信 vs2017 .net4.0"项目是一个学习和实践C#网络编程的好材料。通过此项目,开发者可以深入理解TCP和UDP的区别,掌握如何在C#环境中使用Socket进行网络通信,并了解...
"socket网络(UDP协议编程)"这个标题明确指出了我们要讨论的核心内容——使用套接字(socket)进行网络编程,并且聚焦在用户数据报协议(UDP)上。UDP是一种无连接的、不可靠的传输层协议,与TCP(传输控制协议)...