一起talk C栗子吧(第一百四十六回:C语言实例--socket属性)



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

看官们,我们在上一 回中对socket做了基本的介绍,这一回我们主要是介绍socket的属性。

socket主要有三个属性:

  • 域(domain)
  • 类型(type)
  • 协议(protocol)

域表示socket的通信范围。比如,我们通过互联网通信时使用的域为AF_INET(表示IPv4,与现在使用的IPv6对应的域是AF_INET6),我们在本地通信时使用的域是AF_UNIX。

此外,域还可以决定socket的通信地址格式。大家上网时都会输入相应的网址来访问网站,同理,和服务器通信时也需要服务器的地址。大家常见的网址格式是wwww.xxx.com或者www.xxx.cn,同理,服务器的地址也有相应的格式,我们在后面章回中会通过代码来说明,现在大家只要明白地址的格式与域有关就可以,不同的域使用不同的地址格式。

除了我们常用的域AF_INET和AF_UNIX外,还有其它的域,比如AF_ISO表示使用ISO标准协议的域。在我们实际的程序中AF_INET域使用的最多。

类型表示socket的通信方式。我们常用的类型有两种:SOCK_STREAM和SOCK_DGRAM。它们分别表示流套接字和数据报套接字。使用流套接字时通信的连接是双向、有序而且可靠的。使用数据报套接字时通信的连接是无序而且不可靠的。这两种通信类型造成了两种不同的通信方式,而其根本原因在于,它们在通信过程中使用了不同的通信协议。流套接字使用的是TCP/IP协议,而数据报套接字使用的是UDP协议。我相信熟悉计算机网络的看官一定了解这两种通信协议。因此,我就不详细介绍了,如果有对这两种协议不明白的看官,可以自己查阅一下。

协议表示socket通信时使用的通信协议。我们可以指定套接字使用的协议,不过,在大部分情况下, 我们使用默认的协议,也就是让网络自己来选择。比如我们使用类型为数据报的套接字时,如果不指定专门的通信协议,那么网络会默认选择UDP协议。

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


时间: 2024-08-14 20:34:46

一起talk C栗子吧(第一百四十六回:C语言实例--socket属性)的相关文章

一起talk C栗子吧(第十六回:C语言实例--栈一)

各位看官们,大家好,从今天开始,我们讲大型章回体科技小说 :C栗子,也就是C语言实例.闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们,上一回中咱们说的是双向链表的例子,这一回咱们说的例子是:栈. 什么是栈?我们听过龙门客栈,你这个是哪家客栈?我还没有说,台下已经有客官在问了.看官们,栈是 类似我们在前面几回中说过的链表,它也是用来存放数据的一种抽象的数据结构.因为比较抽象,咱们还 是举个现实生活中的例子来说明吧. 我们出去旅游时通常会拿一个行李箱存放自己的物品,比如衣服,鞋子电脑,

一起talk C栗子吧(第十二回:C语言实例--单链表一)

各位看官们,大家好,从今天开始,我们讲大型章回体科技小说 :C栗子,也就是C语言实例.闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们,上一回中咱们没有说具体的例子,而且是说了例子中的文件组织结构.这一回咱们继续说C例子, 说的例子是链表,更准确的说法叫作单链表.咱们不但要说C例子,而且会在例子中使用上一回中说过的 文件组织结构,就当作是举例说明文件组织结构的使用方法. 有点一石二鸟的感觉,哈哈. 链表定义 看官们,所谓的链表其实就是一组元素通过一定的方式链接在一起.比如我们坐的火车

一起talk C栗子吧(第一百四十九回:C语言实例--socket通信三)

各位看官们,大家好,上一回中咱们说的是socket通信的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在上一回中介绍了socket通信的步骤,当时提到了实现这些步骤使用的系统调用,当时有些看官不理解这些系统调用,今天我们趁热打铁来介绍这些系统调用. int socket(int domain, int type, int protocol) 该函数用来创建一个socket; 该函数的三个参数分别对应socket的三个属性:域,类型和协议: 该函数运

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

各位看官们,大家好,上一回中咱们说的是socket通信的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在上一回中介绍了套接字的通信步骤,限于时间的原因, 我们只介绍了流套接字的通信步骤.这一回中我们将介绍数据报套接字的通信步骤. 下面是客户端和服务器端实现通信的详细步骤: 客户端实现通信的步骤: 1.创建客户端套接字(socket): 2.设置客户端套接字的属性:域,类型和协议: 3.通过操作客户端套接字来实现客户端与服务器的通信(sendto,r

一起talk C栗子吧(第一百四十四回:C语言实例--文件操作大结局)

各位看官们,大家好,上一回中咱们说的是基于文件指针进行文件操作的例子,这一回咱们说的是文件操作大结局.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在前面章回中介绍了文件操作的两种途径:文件描述符和文件指针.今天我们将对这两种文件操作途径进行总结和对比. 我们先看看它们的共同点: 1.口味相同:都喜欢吃文件(都能用来操作文件): 2.生活方式相同:日出而作,日落而息(使用它们时都是按照文件操作三步曲进行:打开,操作,关闭): 3.都不省心:使用时容易引起错误,需要检查使用后的结

一起talk C栗子吧(第一百四十五回:C语言实例--socket概述)

各位看官们,大家好,上一回中咱们说的是基于文件指针进行文件操作的例子,这一回咱们说的例子是socket概述.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们今天主要介绍socket."前面章回中还在介绍文件操作,怎么突然来说这个叫socket的东西呢?"这里有看官在问了,看官莫急,我们之所为介绍socket,是因为它有点类似文件操作中的文件描述符.说类似有点不太准确,其实socket本质上就是文件描述符.我们可以使用read,write等系统调用来操作socket.当然

一起talk C栗子吧(第一百一十六回:C语言实例--线程同步之互斥量二)

各位看官们,大家好,上一回中咱们说的是线程同步之信号量的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起talk C栗子吧! 我们在上一回中详细介绍了互斥量相关函数的用法,这一回中,我们介绍如何使用这些函数来操作互斥量. 下面是详细的操作步骤: 1.定义一个互斥量A,用来同步线程: 2.在创建线程的进程中使用pthread_mutex_init函数初始化互斥量,互斥量的属性使用默认值: 3.在读取数据的线程中读取数据,首先使用pthread_mutex_lock函数对互斥量A进行加锁

一起talk C栗子吧(第一百一十二回:C语言实例--线程同步概述)

各位看官们,大家好.上一回中咱们说的是线程间通信的样例,这一回咱们说的样例是:线程同步.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,提到同步.我想大家都不陌生,由于我们在前面章回中介绍过进程同步的内容. 大家都知道线程是轻量级的进程,尽管线程不像进程一样须要专门的通信机制,可是线程须要专门的同步机制. 今天我们来介绍一下线程同步的内容. 同步的含义对于进程和线程是同样的.仅仅是进程和线程实现同步的方式不同样.关于同步的含义,我们就不做具体的介绍了,假设大家忘记了,能够点击这里查看

【leetcode 简单】 第一百四十六题 最长和谐子序列

和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1. 现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度. 示例 1: 输入: [1,3,2,2,5,2,3,7] 输出: 5 原因: 最长的和谐数组是:[3,2,2,2,3]. 说明: 输入的数组长度最大不超过20,000. from collections import Counter class Solution: def findLHS(self, nums): """ :type n