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

来源:互联网 发布:面膜纸 知乎 编辑:程序博客网 时间:2024/04/29 08:18

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

看官们,我们在前面章回中介绍了socket的基本概述,这一回中我们将介绍如何使用socket来实现两个进程之间的通信。为了方便大家理解socket通信的方式,我们把通信的双方分别称作客户端和服务器端。大家都知道,套接字有两种类型:流套接字和数据报套接字。不同类型的套接字,通信的方式也不同,本章回中我们先介绍流套接字的通信方式,数据报套接字的通信方式将在后面章回中进行介绍。

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

客户端实现通信的步骤

  • 1.创建客户端套接字(socket);
  • 2.设置客户端套接字的属性:域,类型和协议;
  • 3.使用客户端套接字和服务器进行连接(connect);
  • 4.连接成功后,通过操作客户端套接字来实现客户端与服务器的通信(read,write,send,recv);
  • 5.释放套接字,断开客户端与服务器端的通信(close,shutdown);

服务器端实现通信的步骤

  • 1.创建服务器端套接字(socket);
  • 2.设置服务器端套接字的属性:域,类型和协议;
  • 3.把服务器端的套接字和服务器的地址绑定在一起,本质上是在指定服务器端的通信进程(bind);
  • 4.服务器端创建套接字队列,为通信做好准备,开始监听客户端发来的通信连接请求(listen);
  • 5.服务器端接受客户端发来的连接请求,并且获得与客户端匹配的socket(accept);
  • 6.连接成功后,通过操作步骤5中获得的套接字来实现客户端与服务器的通信(read,write,send,recv);
  • 7.释放套接字,断开服务器端与客户端的通信(close,shutdown);

在上面的步骤中,我们把每个步骤中需要使用到的系统调用都列出来了,它们位于括号中。括号中大部分的系统调用大家可能还不了解,或者是第一次见到,大家不用担心,我们在后面的章回中会介绍这些系统调用。不过,括号中的系统调用也有我们熟悉的,比如我们在前面章回中介绍过的read,write。

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


0 0
原创粉丝点击