Socket编写UDP通信服务端和客户端,有多个客户端并实现外网访问

计算机网络课程作业要求服务端Socket编写UDP通信和客户端,只能实现服务端和客户端点对点通讯,能否将服务端作为中转,为两个或多个客户端发送信息,另外实现外网访问服务端,怎么具体实现呢?求具体实现方法,或者说个大概,让我有个实现概念

首先服务器外网访问,假如你的服务器指的是像腾讯云,阿里云这样的云服务器,那么天然的就支持外网访问;假如是你用自己的电脑运行一个服务器程序,那么需要做内网穿透,才能外网访问(假如只是演示用的话,所有设备连接校园网内网也可以)

其次多个客户端发送消息,服务器端可以将所有已连接客户端的socket都保存在一个数组里面,然后每收到一条新的消息,判断该消息是群发的还是单发的(客户端在消息里面加入该信息),群发的话就遍历整个数组给每个客户端发送一次,单发的就发给那个特定的人