基于UDP协议的Socket简单实例
使用两个类 DatagramPacket -- 表示数据报包
DatagramSocket -- 表示进行端到端的通信类
服务端四步
1、定义服务端IP 端口 数据内容
2、创建DategramPacket 数据包对象 将其包含数据内容
3、创建DategramSocket 对象
4、socket.send() 进行发送;
UdpSocketServer 代码
package com.chen.study.socket.socketServer; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; public class UdpSocketServer { private static int port = 12000; /** * UDPsocket服务 */ public static void UdpSocketServer(){ try { //1.创建服务端口 DatagramSocket socket = new DatagramSocket(port); System.out.println("UDPsocket已经启动....."); //2.创建数据报,用于接收客户端的发送数据 byte[] data = new byte[1024]; DatagramPacket packet = new DatagramPacket(data, data.length); //3.接受客户端请求 socket.receive(packet);//此方法在接收到数据前一直处于阻塞状态 //4.读取数据 String info = new String(data, 0,packet.getLength()); System.out.println("我是服务器,客户端说:"+info); } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { UdpSocketServer(); } }
客户端
1.获取 IP 地址与 端口号 InetAddress inetaddress
2.创建数据报
3.创建Socket
4.发送 Socket.send(DatagramPacket packet)
客户端代码 写道
package com.chen.study.socket.socketServer; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; public class UdpSocketClient { private static int port = 12000; private static String ip = "192.168.119.35"; public static void UdpSocketClient(){ try { byte[] data = "服务端你好!".getBytes(); System.out.println("客户端发送:"+"服务端你好!"); InetAddress inetaddress = InetAddress.getByName(ip); //创建数据报 DatagramPacket packet = new DatagramPacket(data, data.length, inetaddress, port); //创建Socket DatagramSocket socket = new DatagramSocket(); socket.send(packet); } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub UdpSocketClient(); } }
附:
String info = new String (date,0,packet.getLength());
String构造方法
public String(byte[] bytes,
int offset,
int length)
bytes - 要解码为字符的 byte
offset - 要解码的第一个 byte 的索引
length - 要解码的 byte 数
相关推荐
这个实例中的代码简单明了,非常适合初学者学习UDP Socket编程。在实际项目中,你可能需要考虑更多的因素,如错误处理、数据包的完整性校验、多线程支持等。同时,注意在不同的操作系统或编译器环境下,可能需要对...
基于UDP协议的Socket编程主要涉及两个关键类:`DatagramPacket`和`DatagramSocket`,这两个类都位于Java的`java.net`包中。 `DatagramPacket`类是UDP通信的核心,它负责封装和解析实际传输的数据。当需要发送数据时...
**基于UDP的Socket通信实例详解** UDP(User Datagram Protocol,用户数据报协议)是一种无连接的、不可靠的传输层协议,它不提供拥塞控制、流控制等服务,但因其简单高效,常用于实时数据传输,如视频会议、在线...
在Java中,Socket提供了一种标准的方式来实现基于TCP(传输控制协议)和UDP(用户数据报协议)的网络通信。这两种协议在互联网通信中扮演着核心角色。 TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。...
接下来,创建Socket实例时需指定网络类型(`SocketType.Dgram`表示UDP)、数据连接类型(`ProtocolType.Udp`表示UDP协议),并绑定到本地端点。这样,Socket就可以准备好接收或发送数据了。 ### 实现UDP通信 在...
在基于UDP协议通信的例子中,我们通常会分为服务端和客户端两个部分来实现。服务端的任务是监听特定的端口,接收来自客户端的数据,并可能进行处理后将响应数据发送回客户端。客户端则负责构造数据包,通过UDP协议...
在"基于UDP SOCKET 统计丢包率"的项目中,我们采用C/S(Client/Server)模型进行通信。客户端(Client)发送数据报到服务器(Server),而服务器则回射这些数据报给客户端。通过比较发送的数据报数量和接收到的数据...
Java基于UDP协议的聊天程序是一种实现网络通信的应用实例,它利用了无连接的用户数据报协议(User Datagram Protocol,简称UDP)进行数据传输。在这个完整版的程序中,开发者已经完成了从设计到调试的全部过程,使其...
在这个场景中,我们关注的是基于UDP(User Datagram Protocol)的Socket通信。UDP是一种无连接的传输层协议,它不保证数据包的顺序、可靠性和完整性,但具有更低的延迟和更高的效率,适合实时性要求高的应用。 标题...
本文将深入探讨如何使用C++编程语言来实现基于TCP和UDP的简单Socket服务,包括echo(回显)、time(时间查询)等功能。 首先,TCP是一种面向连接的、可靠的协议,它保证了数据的顺序和完整性。TCPecho服务通常用于...
- SuperSocket的UDP支持允许开发者创建基于数据报的通信服务,处理单向或双向的数据传输。 - UDP应用可以利用SuperSocket的多线程处理和缓冲区管理机制,提高数据处理效率。 - 开发者可以通过定义自定义协议解析...
本文将深入解析标题为“HPSocket--UDP传输客户端应用实例”的技术要点,以及如何利用HPsocket框架实现UDP协议的客户端功能。 首先,HPSocket是一款强大的网络通信组件,它提供了丰富的接口,支持多种协议(如TCP、...
这个项目是关于实现一个简单的局域网内的文本聊天程序,它利用了无连接的用户数据报协议(UDP)来传输信息。UDP是一种在网络应用中广泛使用的传输层协议,与TCP(传输控制协议)相比,它不提供可靠的数据传输服务,...
Java聊天程序基于UDP协议,这是一种使用用户数据报协议(User Datagram Protocol)来实现网络通信的简单聊天工具。UDP是传输层的一种无连接协议,与TCP相比,它更注重速度和效率,而对数据的可靠传输则相对较少保障...
在IT行业中,网络编程是构建分布式系统的关键技术之一,而基于UDP协议的聊天程序则是其中的一个实例。UDP(User Datagram Protocol)是一种无连接的、不可靠的传输层协议,相较于TCP,它更注重速度和效率,常用于...
摘要:网络上基于socket通信的例子很多,但要么代码不好用,要么资料不全,本程序综合并参考了一定数量的文档和代码,开发如下socket通信系统。 工具: VS 2010 (C++) ; 通信原理:UDP ; 采用技术:CSocket ; ...
在本文中,我们将深入探讨C#中基于UDP协议的Socket通信。UDP(User Datagram Protocol)是一种无连接的、不可靠的传输层协议,常用于实时数据传输,如视频流和在线游戏,因为它提供了低延迟和高效率。C#中的Socket...
本示例将介绍如何使用C语言实现基于UDP(User Datagram Protocol)协议的Socket通信。UDP是一种无连接的、不可靠的传输层协议,适合于对实时性要求较高的应用,如视频会议或在线游戏。 首先,程序引入了必要的...