网络编程: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 通信

相关文章
|
10月前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
362 20
|
10月前
|
监控 关系型数据库 MySQL
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
319 0
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
667 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
663 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
Kubernetes 网络协议 Python
Python网络编程:从Socket到Web应用
在信息时代,网络编程是软件开发的重要组成部分。Python作为多用途编程语言,提供了从Socket编程到Web应用开发的强大支持。本文将从基础的Socket编程入手,逐步深入到复杂的Web应用开发,涵盖Flask、Django等框架的应用,以及异步Web编程和微服务架构。通过本文,读者将全面了解Python在网络编程领域的应用。
243 1
|
存储 机器人 Linux
Netty(二)-服务端网络编程常见网络IO模型讲解
Netty(二)-服务端网络编程常见网络IO模型讲解
|
网络协议 Python
告别网络编程迷雾!Python Socket编程基础与实战,让你秒变网络达人!
在网络编程的世界里,Socket编程是连接数据与服务的关键桥梁。对于初学者,这往往是最棘手的部分。本文将用Python带你轻松入门Socket编程,从创建TCP服务器与客户端的基础搭建,到处理并发连接的实战技巧,逐步揭开网络编程的神秘面纱。通过具体的代码示例,我们将掌握Socket的基本概念与操作,让你成为网络编程的高手。无论是简单的数据传输还是复杂的并发处理,Python都能助你一臂之力。希望这篇文章成为你网络编程旅程的良好开端。
187 3
|
网络协议 开发者 Python
网络编程小白秒变大咖!Python Socket基础与进阶教程,轻松上手无压力!
在网络技术飞速发展的今天,掌握网络编程已成为开发者的重要技能。本文以Python为工具,带你从Socket编程基础逐步深入至进阶领域。首先介绍Socket的概念及TCP/UDP协议,接着演示如何用Python创建、绑定、监听Socket,实现数据收发;最后通过构建简单的聊天服务器,巩固所学知识。让初学者也能迅速上手,成为网络编程高手。
265 1
|
网络协议 C语言
C语言 网络编程(十三)并发的TCP服务端-以进程完成功能
这段代码实现了一个基于TCP协议的多进程并发服务端和客户端程序。服务端通过创建子进程来处理多个客户端连接,解决了粘包问题,并支持不定长数据传输。客户端则循环发送数据并接收服务端回传的信息,同样处理了粘包问题。程序通过自定义的数据长度前缀确保了数据的完整性和准确性。
|
网络协议 C语言
C语言 网络编程(十四)并发的TCP服务端-以线程完成功能
这段代码实现了一个基于TCP协议的多线程服务器和客户端程序,服务器端通过为每个客户端创建独立的线程来处理并发请求,解决了粘包问题并支持不定长数据传输。服务器监听在IP地址`172.17.140.183`的`8080`端口上,接收客户端发来的数据,并将接收到的消息添加“-回传”后返回给客户端。客户端则可以循环输入并发送数据,同时接收服务器回传的信息。当输入“exit”时,客户端会结束与服务器的通信并关闭连接。

热门文章

最新文章