文章目录
前言
基于udp socket写一个最简单的客户端服务器程序.
UDP数据报套接字编程
什么是套接字
我们先来解释一下什么是套接字吧!
套接字(socket)是一种网络通信的编程接口,是在应用层和传输层之间的一个抽象层,它提供了一组接口用于应用程序实现网络通信。
在网络通信中,套接字充当了一个通信链路的端点,通过套接字可以进行数据的读写和传输,套接字支持多种传输层协议,比如TCP和UDP等。通过套接字,我们可以创建一个服务器端应用程序,监听客户端的请求,也可以创建一个客户端应用程序,向服务器发送请求。
套接字的实现通常是由操作系统提供的,应用程序只需要调用相应的套接字接口即可进行网络通信。常见的套接字接口包括BSD socket、Winsock等。
系统给我提供的是俩种api,一种是基于TCP的,一种是基于UDP的,但是这俩者具体有什么区别呢?大家可以看看我的描述!

我们这里有一个专业名词,就是什么是全双工,什么是半双工,我这里画图解释一下.

套接字的api
我们首先来讲解一下什么是Datagram和socket

DatagramSocket API
DatagramSocket 是UDP Socket,用于发送和接收UDP数据报。

DatagramPacket API
DatagramPacket是UDP Socket发送和接收的数据报

示例:一发一收(无响应)
客户端发了个请求,服务器返回一个一模一样的响应.
—个服务器,主要要做三个核心工作:
1.读取请求并解析
2根据请求计算响应(省略了)3.把响应返回到客户端
客户端
import java.io.IOException;
import java.net.*;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;
public class UdpEchoClient {
private DatagramSocket socket = null;
private String serverIP;
private int serverPort;
//客户端启动需要知道服务器在哪里!!!
public UdpEchoClient(String serverIP, int serverPort) throws SocketException {
//对于客户端来说,不需要显示关联端口
//不代表没有端口,而是系统自动分配了个空闲端口
socket = new DatagramSocket();
this.serverIP = serverIP;
this.serverPort = serverPort;

文章介绍了UDP数据报套接字的概念,包括套接字作为应用层和传输层之间的接口,以及如何使用DatagramSocketAPI进行一发一收的通信。提供了客户端和服务器的Java代码示例,展示了一个简单的UDP回显服务的实现。客户端发送请求,服务器接收并返回相同的响应。
最低0.47元/天 解锁文章
423

被折叠的 条评论
为什么被折叠?



