`

基于UDP协议的Socket简单实例

阅读更多

基于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编程。在实际项目中,你可能需要考虑更多的因素,如错误处理、数据包的完整性校验、多线程支持等。同时,注意在不同的操作系统或编译器环境下,可能需要对...

    基于UDP协议的Socket编程

    基于UDP协议的Socket编程主要涉及两个关键类:`DatagramPacket`和`DatagramSocket`,这两个类都位于Java的`java.net`包中。 `DatagramPacket`类是UDP通信的核心,它负责封装和解析实际传输的数据。当需要发送数据时...

    基于UDP的Socket通信实例

    **基于UDP的Socket通信实例详解** UDP(User Datagram Protocol,用户数据报协议)是一种无连接的、不可靠的传输层协议,它不提供拥塞控制、流控制等服务,但因其简单高效,常用于实时数据传输,如视频会议、在线...

    基于UDP和TCP协议的Socket(网络编程/套接字)案例

    在Java中,Socket提供了一种标准的方式来实现基于TCP(传输控制协议)和UDP(用户数据报协议)的网络通信。这两种协议在互联网通信中扮演着核心角色。 TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。...

    C#的Socket实现UDP协议通信

    接下来,创建Socket实例时需指定网络类型(`SocketType.Dgram`表示UDP)、数据连接类型(`ProtocolType.Udp`表示UDP协议),并绑定到本地端点。这样,Socket就可以准备好接收或发送数据了。 ### 实现UDP通信 在...

    基于UDP协议通信的例子

    在基于UDP协议通信的例子中,我们通常会分为服务端和客户端两个部分来实现。服务端的任务是监听特定的端口,接收来自客户端的数据,并可能进行处理后将响应数据发送回客户端。客户端则负责构造数据包,通过UDP协议...

    基于UDP SOCKET 统计丢包率

    在"基于UDP SOCKET 统计丢包率"的项目中,我们采用C/S(Client/Server)模型进行通信。客户端(Client)发送数据报到服务器(Server),而服务器则回射这些数据报给客户端。通过比较发送的数据报数量和接收到的数据...

    java基于UDP协议的聊天程序(完整版)

    Java基于UDP协议的聊天程序是一种实现网络通信的应用实例,它利用了无连接的用户数据报协议(User Datagram Protocol,简称UDP)进行数据传输。在这个完整版的程序中,开发者已经完成了从设计到调试的全部过程,使其...

    自己编写的基于UDP的Socket通信类,附上基于对话框例子

    在这个场景中,我们关注的是基于UDP(User Datagram Protocol)的Socket通信。UDP是一种无连接的传输层协议,它不保证数据包的顺序、可靠性和完整性,但具有更低的延迟和更高的效率,适合实时性要求高的应用。 标题...

    tcp udp socket服务简单示例

    本文将深入探讨如何使用C++编程语言来实现基于TCP和UDP的简单Socket服务,包括echo(回显)、time(时间查询)等功能。 首先,TCP是一种面向连接的、可靠的协议,它保证了数据的顺序和完整性。TCPecho服务通常用于...

    SuperSocket-master_Socket基于TCP、UDP

    - SuperSocket的UDP支持允许开发者创建基于数据报的通信服务,处理单向或双向的数据传输。 - UDP应用可以利用SuperSocket的多线程处理和缓冲区管理机制,提高数据处理效率。 - 开发者可以通过定义自定义协议解析...

    HPSocket--UDP传输客户端应用实例

    本文将深入解析标题为“HPSocket--UDP传输客户端应用实例”的技术要点,以及如何利用HPsocket框架实现UDP协议的客户端功能。 首先,HPSocket是一款强大的网络通信组件,它提供了丰富的接口,支持多种协议(如TCP、...

    基于udp协议的局域网的端端聊天程序

    这个项目是关于实现一个简单的局域网内的文本聊天程序,它利用了无连接的用户数据报协议(UDP)来传输信息。UDP是一种在网络应用中广泛使用的传输层协议,与TCP(传输控制协议)相比,它不提供可靠的数据传输服务,...

    java聊天程序 基于udp协议

    Java聊天程序基于UDP协议,这是一种使用用户数据报协议(User Datagram Protocol)来实现网络通信的简单聊天工具。UDP是传输层的一种无连接协议,与TCP相比,它更注重速度和效率,而对数据的可靠传输则相对较少保障...

    基于UDP协议的聊天程序

    在IT行业中,网络编程是构建分布式系统的关键技术之一,而基于UDP协议的聊天程序则是其中的一个实例。UDP(User Datagram Protocol)是一种无连接的、不可靠的传输层协议,相较于TCP,它更注重速度和效率,常用于...

    基于UDP的Socket 通信源码(VC++ 2010 MFC CSocket类)

    摘要:网络上基于socket通信的例子很多,但要么代码不好用,要么资料不全,本程序综合并参考了一定数量的文档和代码,开发如下socket通信系统。 工具: VS 2010 (C++) ; 通信原理:UDP ; 采用技术:CSocket ; ...

    C#基于UDP协议的Socket通信整套源码(包括发送端和接收端)

    在本文中,我们将深入探讨C#中基于UDP协议的Socket通信。UDP(User Datagram Protocol)是一种无连接的、不可靠的传输层协议,常用于实时数据传输,如视频流和在线游戏,因为它提供了低延迟和高效率。C#中的Socket...

    Linux中使用C语言实现基于UDP协议的Socket通信示例

    本示例将介绍如何使用C语言实现基于UDP(User Datagram Protocol)协议的Socket通信。UDP是一种无连接的、不可靠的传输层协议,适合于对实时性要求较高的应用,如视频会议或在线游戏。 首先,程序引入了必要的...

Global site tag (gtag.js) - Google Analytics