一起talk C栗子吧(第一百四十八回:C语言实例--数据报socket通信过程)

时间:2021-08-03 10:57:21

各位看官们,大家好,上一回中咱们说的是socket通信的例子,这一回咱们继续说该例子。闲话休提,言归正转。让我们一起talk C栗子吧!

看官们,我们在上一回中介绍了套接字的通信步骤,限于时间的原因, 我们只介绍了流套接字的通信步骤。这一回中我们将介绍数据报套接字的通信步骤。

下面是客户端和服务器端实现通信的详细步骤:

客户端实现通信的步骤:

  • 1.创建客户端套接字(socket);
  • 2.设置客户端套接字的属性:域,类型和协议;
  • 3.通过操作客户端套接字来实现客户端与服务器的通信(sendto,recvfrom);
  • 4.释放套接字,断开客户端与服务器端的通信(close,shutdown);

服务器端实现通信的步骤:

  • 1.创建服务器端套接字(socket);
  • 2.设置服务器端套接字的属性:域,类型和协议;
  • 3.把服务器端的套接字和服务器的地址绑定在一起,本质上是在指定服务器端的通信进程(bind);
  • 4.通过操作服务器端套接字来实现客户端与服务器的通信(sendto,recvfrom);
  • 5.释放套接字,断开服务器端与客户端的通信(close,shutdown);

看官们,与流套接字的通信步骤相比,使用数据报套接字通信时没有连接的过程,这主要是因为流套接字使用的是面向连接的TCP/IP协议,而数据报套接字使用的是无连接的数据报协议(UDP协议)。

在上面的步骤中,我们把每个步骤中需要使用到的系统调用都列出来了,它们位于括号中。括号中大部分的系统调用和前面章回中的系统调用相同 ,只是新增加了两个系统调用:sendto,recvfrom。我们在后面的章回中会介绍这些系统调用。

各位看官,关于数据报socket通信过程的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解 。