快捷搜索:  汽车  科技

socket网络编程23讲,黑客技术入门go网络编程之UDP

socket网络编程23讲,黑客技术入门go网络编程之UDP服务器端监听UDP地址返回的类型即是UDPAddr类型。UDPAddr结构体定义如下:UDP地址在go语言中使用ResolveUDPAddr函数可以获取到一个UDPAddr结构体类型,源码如下:

黑客离不开网络,网络通信离不开TCP和UDP协议,前面一篇文章黑客技术入门之go实现tcp socket通信中介绍了基于tcp socket通信,本篇主要介绍基于UDP Socket的网络通信。

socket网络编程23讲,黑客技术入门go网络编程之UDP(1)

黑客

UDP是英文User Datagram Protocol的简称,中文是用户数据报协议。UDP是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。

go语言中提供的socket编程接口主要在net包中,udp socket编程中有两个重要类型UDPAddr和UDPConn。

socket网络编程23讲,黑客技术入门go网络编程之UDP(2)

UDPAddr结构体定义如下:

socket网络编程23讲,黑客技术入门go网络编程之UDP(3)

UDP地址

在go语言中使用ResolveUDPAddr函数可以获取到一个UDPAddr结构体类型,源码如下:

socket网络编程23讲,黑客技术入门go网络编程之UDP(4)

返回的类型即是UDPAddr类型。

socket网络编程23讲,黑客技术入门go网络编程之UDP(5)

服务器端监听UDP地址

socket网络编程23讲,黑客技术入门go网络编程之UDP(6)

之后通过for循环不断地从UDPConn读取客户端数据,再把服务器当前时间发送给客户端。ReadFromUDP函数读取UDP数据包,如果没有数据可读,该函数会阻塞。

socket网络编程23讲,黑客技术入门go网络编程之UDP(7)

客户端通过net包中Dial函数连接服务器

socket网络编程23讲,黑客技术入门go网络编程之UDP(8)

之后客户端读取命令行输入的文本,发送到服务端,同时读取服务器端发送的数据。

socket网络编程23讲,黑客技术入门go网络编程之UDP(9)

客户端在读取控制台输入时,采用的是goroutine。goroutine是Go语言中并发的执行单位,可以实现读写异步,在控制台阻塞时不影响读取服务器端发送过来的数据。

今天就给大家介绍到这里!

大家好!我是黑客之家小编,黑客之家头条号

分享黑客技术,物联网、GO、python、Kotlin、Android、Java编程知识,科技资讯等

喜欢的朋友可以关注我的头条号!

相关阅读:

黑客技术入门之go实现tcp socket通信

黑客技术入门之python实现tcp socket通信

黑客编程入门之如何用python编写一个命令行程序?

猜您喜欢: