网络编程:socket—基于 UDP 服务端编程|学习笔记

简介: 快速学习网络编程:socket—基于 UDP 服务端编程

开发者学堂课程【大数据 ZooKeeper 快速入门 网络编程:socket—基于 UDP 服务端编程】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/549/detail/7581


网络编程:socket—基于 UDP 服务端编程


一、socket—基于 UDP 协议编程

首先在 diea 中创建一个名为的类,创建完成后写一个 main 方法,以此来进行运行,输入 psvm 可快速写出 main 方法。

编程前梳理流程:

1. 在服务端创建服务端 socket 对象 DatagromSocket

2. 创建对象后需要接收数据,使用自带的方法接收数据

3. 接受数据后,因为原始数据是打包发送过来的,所以需要针对数据包进行解析,解析完成后才可以获取数据包中的内容

4. 最终进行释放资源

当逻辑清楚后再进行代码实现就更加简单。

代码实现:

public class UDPSocketServer {

public static void main(String[] args) throws Exception {

//创建服务端 socket 对象 DatagramSocket

//客户端向一个端口发送出去,所以这里需要一个端口接收,这个端口需要和客户端保持一致,所以 new 一个 DatagramSocket 对象,并且在里面输入端口号12321(需要和客户端端口保持一致),这样发送的数据才能被接收。这里需要抛出一个异常,直接抛出最大的异常 throws Exception

DatagramSocket server = new DatagramSocket(12321);

//接收数据,通过 server 接收数据,在其中调用 receive 包,创建一个 packet 包来进行接收数据,因此在接收数据时还要创建数据包

server.receive(packet);

//创建接收数据的数据包(数据接收的容器)

//创建 bys 数组进行存放,限制大小

byte[] bys = new byte[1024];

//传 入 bys,并指定 bys 长度,这样就创好了接收数据的容器,服务端就可以接收由客户端发送的数据包,接下来就要对数据包进行解析

DatagramPacket_packet = new DatagramPacket(bys, bys.length);

//针对数据包进行解析

//获取地址和主机名,创建host进行存放

String host = packet.getAddress().getHostAddress();

//通过 packet 进行获取数据并放入 byte[]数组中

byte[] data = packet.getData();

//直接进行打印接收到的数据,这样就完成了接收数据包的解析

System.out.println("接收来自"+host+"信息: "+new String(data));

//释放资源,对 server 进行关闭

Server.close();

}}

//完成基于 udp 协议的编写

直接右键运行 main 方法进行测试,切换到服务端发现成功接收到了信息:

接收来自192.168.158.1信息,hello udp?

这就是基于 udp 的 socket 通信

相关文章
|
3月前
|
机器学习/深度学习 API Python
Python 高级编程与实战:深入理解网络编程与异步IO
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧、数据科学、机器学习、Web 开发和 API 设计。本文将深入探讨 Python 在网络编程和异步IO中的应用,并通过实战项目帮助你掌握这些技术。
|
4月前
|
网络协议 算法 安全
Go语言的网络编程与TCP_UDP
Go语言由Google开发,旨在简单、高效和可扩展。本文深入探讨Go语言的网络编程,涵盖TCP/UDP的基本概念、核心算法(如滑动窗口、流量控制等)、最佳实践及应用场景。通过代码示例展示了TCP和UDP的实现,并讨论了其在HTTP、DNS等协议中的应用。最后,总结了Go语言网络编程的未来发展趋势与挑战,推荐了相关工具和资源。
125 5
|
7月前
|
监控 网络协议 网络性能优化
网络通信的核心选择:TCP与UDP协议深度解析
在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种基础且截然不同的传输层协议。它们各自的特点和适用场景对于网络工程师和开发者来说至关重要。本文将深入探讨TCP和UDP的核心区别,并分析它们在实际应用中的选择依据。
200 3
|
8月前
|
Web App开发 缓存 网络协议
不为人知的网络编程(十八):UDP比TCP高效?还真不一定!
熟悉网络编程的(尤其搞实时音视频聊天技术的)同学们都有个约定俗成的主观论调,一提起UDP和TCP,马上想到的是UDP没有TCP可靠,但UDP肯定比TCP高效。说到UDP比TCP高效,理由是什么呢?事实真是这样吗?跟着本文咱们一探究竟!
195 10
|
7月前
|
Kubernetes 网络协议 Python
Python网络编程:从Socket到Web应用
在信息时代,网络编程是软件开发的重要组成部分。Python作为多用途编程语言,提供了从Socket编程到Web应用开发的强大支持。本文将从基础的Socket编程入手,逐步深入到复杂的Web应用开发,涵盖Flask、Django等框架的应用,以及异步Web编程和微服务架构。通过本文,读者将全面了解Python在网络编程领域的应用。
118 1
|
8月前
|
消息中间件 监控 网络协议
Python中的Socket魔法:如何利用socket模块构建强大的网络通信
本文介绍了Python的`socket`模块,讲解了其基本概念、语法和使用方法。通过简单的TCP服务器和客户端示例,展示了如何创建、绑定、监听、接受连接及发送/接收数据。进一步探讨了多用户聊天室的实现,并介绍了非阻塞IO和多路复用技术以提高并发处理能力。最后,讨论了`socket`模块在现代网络编程中的应用及其与其他通信方式的关系。
719 3
|
8月前
|
网络协议 Linux 应用服务中间件
Socket通信之网络协议基本原理
【10月更文挑战第10天】网络协议定义了机器间通信的标准格式,确保信息准确无损地传输。主要分为两种模型:OSI七层模型与TCP/IP模型。
|
8月前
|
存储 网络协议 Java
【网络】UDP回显服务器和客户端的构造,以及连接流程
【网络】UDP回显服务器和客户端的构造,以及连接流程
188 3
|
8月前
|
存储 网络协议 Java
【网络】UDP和TCP之间的差别和回显服务器
【网络】UDP和TCP之间的差别和回显服务器
133 1
|
8月前
|
网络协议 测试技术 网络安全
Python编程-Socket网络编程
Python编程-Socket网络编程
82 0

热门文章

最新文章