网络编程:UDP编程(2)

这是张富涛的第9篇原创

网络编程:UDP编程(2)

1. 前言

在上一章《网络编程:UDP编程(1)》中我们介绍了UDP方式的简单客户端和服务器端实现方式,这一章我们将要对其进行一下改造,类似“TCP”的客户端和服务器端一样,能够实现“客户端多次提交请求及服务器端多次处理”功能,呢么让我们先回顾一下上一章客户端和服务器端的实现代码吧!

2. 代码回顾

(改造前)UDP简单客户端的实现

(改造前)UDP简单服务器端的实现

3. 代码改造

首先我们将客户端进行改造,我们将其发送数据的一块增加一个循环,使其能够循环发送数据给服务器端。

我们在考虑到服务器端创建线程并且响应的时间(其实并没有太长)和打印日志的完整情况,所以让每次发送完数据包休息1秒。

接下来我们可以对服务器端进行改造:

服务器端是给多个客户端使用的,我们之前的代码是只能处理一个客户端发送的数据包,这样不符合服务器端的概念,那么我们该如何改造呢?我们可以做一个循环,当服务器端接收到了一个客户端的数据包时,就单独新建一个线程进行工作,利用多线程实现这个功能。

首先我们创建一个“UDPThread”线程类,让它继承“Thread”类。同时在构造方法里声明需要一个“DatagramSocket”和“DatagramPacket”对象,其中“DatagramSocket”用于给客户端返回数据,“DatagramPacket”是获取客户端的数据包,并为后续执行一定的业务逻辑做准备,这样我们就可以在服务器端接收到客户端的数据包后,将其传给“UDPThread”进行单独处理业务了。

然后我们改造服务器端代码,既然将处理“接收到的数据包”代码都放在线程里了,就可以把那些代码删掉了,同时做一个死循环不停让阻塞方法接收客户端发送的数据包,只要接收一个就新建一个线程并处理。

最终结果为:

服务器端:

客户端:

总而言之,基本的改造思路跟TCP方式的网络通讯代码是相同的,我们主要的目标是让客户端能多次发送请求,和让服务器端能接收到多个客户端的请求并处理,小伙伴们学会了吗?



---------------

公众号:张富涛的学习笔记(ID:futaoNT)

知乎:张富涛

CSDN:张富涛

这是一个在夜晚可以靠编程拯救世界的程序员,关注他将在第一时间获悉他的知识、工作心得!

长按下图二维码关注:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值