我们先来看一下socket函数的原型:

SOCKET PASCAL FAR socket (int af, int type, int protocol);

典型的调用方式为:

unsigned int sockSrv = socket(AF_INET, SOCK_STREAM, 0);

1.af是address family的缩写,实际上就是指明域domain, 这个af主要是用来区分是创建ipv4的套接字还是ipv6的套接字。   当然, 顺便说一下, 如果是在unix中, 第一个参数还可以是AF_UNIX, 表示这个socket既不是ipv4的socket, 也不是ipv6的socket, 而是非网络形式的unix域socket, 可以用来进行非网络形式的进程间通信。 在很多嵌入式系统中, 进程间的通信均是通过非网络形式的unix域套接字来完成的。不过, 我们要明白, unix域套接字的客户端和服务端进行通信时, 客户端和服务端必须位于同一台机器上, 而且效率比网络套接字更高。

2. 我以前总是以为, 这个type值决定了是tcp套接字还是udp套接字, 其实不是的。 type值决定的是流套接字还是数据报套接字或者其他。 注意流套接字不一定是tcp, 数据报套接字也不一定是udp.

3. protocol这个值通常为0, 为0的时候是什么意思呢? 意思是, 如果type是流套接字, 且protocol为0, 那么就是就是默认的流套接字---tcp套接字。 同理, 如果type是数据报套接字, 且protocol为0, 那么就是默认的数据报套接字---udp套接字。

返回值其实就是一个无符号整形,用于标识和索引套接字。可以通过返回值判断套接字是否创建成功。

socket函数详解 (有了新的认识)相关推荐

  1. 常用socket函数详解

    常用socket函数详解 关于socket函数,每个的意义和基本功能都知道,但每次使用都会去百度,参数到底是什么,返回值代表什么意义,就是说用的少,也记得不够精确.每次都查半天,经常烦恼于此.索性都弄 ...

  2. c/c++ socket函数详解

    转载自:https://www.cnblogs.com/liedElxa/p/10795398.html c/c++ socket函数详解 注意: 使用socketAPI前,要先将相关链接库(Ws2_ ...

  3. socket编程:socket()函数详解

    文章目录 1. 什么是socket? 1.1 意义 1.2 本质 1.3 应用 1.4 结论 2. socket() 函数参数介绍 2.1 参数1:int af 2.2 参数2:int type 2. ...

  4. python中socket详解_python socket函数详解

    关于socket函数,每个的意义和基本功能都知道,但每次使用都会去百度,参数到底是什么,返回值代表什么意义,就是说用的少,也记得不够精确.每次都查半天,经常烦恼于此.索性都弄得清楚.通透,并记录下来, ...

  5. socket()函数详解!

    函数原型 socket()函数的原型如下,这个函数建立一个协议族为domain.协议类型为type.协议编号为protocol的套接字文件描述符.如果函数调用成功,会返回一个标识这个套接字的文件描述符 ...

  6. SOCKET函数详解

    socket原理 1.socket socket位于应用层和TCP/IP协议通信中间,抽象成一组接口 1.服务端首先初始化Socket(),然后和接口进行绑定bind()和监听listen(),然后调 ...

  7. linux socket函数详解,linuxSocket_函数.doc

    垄话让蛤驻本扑缔蛙画乐谁啊绅驯钟鬼作娄醉龙嫂钠孝叔肛歼孽及蒂吐表蚕叉茂膏缮烫再熔汾帆帜钢姬苫云揣诊保绩判庞瞩芝揍蒲垃饿裔恍疗镊畏架浓谱极赤侨辆雀橱颓座寓卓皖森鬃香强孽饵讣蔽际狐颖钾妨壕托扯盐蛮它射图统 ...

  8. 【五】Socket函数详解

    ❤️ 专栏简介 :网络通信和Socket编程是Linux C/C++服务器开发的基础.本专栏从最基础的内容开始学习网络通信和socket编程的相关内容,循序渐进的掌握网络通信的和socket编程的相关 ...

  9. socket编程流程及函数详解

    socket编程流程及函数详解-服务器端 一.创建socket 二.命名socket 2.1通用的socket地址结构体 2.2专用socket地址 三.监听socket 四.接受连接 五.总结 一. ...

最新文章

  1. android view控件的显示和隐藏动画效果
  2. animate inater插件_C4D R20插件下载 旧版插件C4D R20桥接插件INSYDIUMS Plug-In Bridge Cinema 4D R20 免费版 下载-脚本之家...
  3. Operation category READ is not supported in state standby
  4. 图解HTTP学习笔记
  5. ElasticSearch 实践过程中遇到的几个小问题
  6. shiro 角色与权限的解读
  7. qt的一些参数配置 win和linux
  8. 线程安全的CopyOnWriteArrayList介绍
  9. Windows 无法访问\\196.168.206.xx,你的计算机配置似乎是正确的,但该设备无法访问的问题解决
  10. 笔记本进入pe却看不到计算机硬盘,一些笔记本进WINPE后找不到硬盘的解决办法...
  11. 什么样的音乐和呼噜声最配?
  12. bzoj3207主席树
  13. .Net Core开发学习(一) ——Startup 类
  14. cscd期刊是c刊吗_核心期刊和C刊有什么区别
  15. 解析社交电商运营模式玩法的秘密?
  16. 单细胞文献学习(part2)--stPlus: a reference-based method for the accurate enhancement of ST
  17. iOS description方法的使用介绍
  18. 数学运算符和运算符的优先级
  19. 【简写】编程领域简写
  20. graph classification and drug discovery

热门文章

  1. [ZZULI]1114~
  2. 美通社企业新闻汇总 | 2019.2.11 | 《流浪地球》登顶IMAX国产片最高票房;阿迪达斯推出UltraBOOST19跑鞋...
  3. 《孙子兵法》中关于领导力的一个不错的描述
  4. Non-parseable POM
  5. latex中文编辑顿号的输入
  6. cas:1628790-40-8|脂溶性Cyanine7-COOH|CY7-Carboxylic Acid
  7. 如何快速来一套苹果全家桶
  8. 《Imbalance Problems in Object Detection:A Review》论文笔记
  9. JVM - 认识JVM规范
  10. 大数据监控平台-Prometheus监控Hadoop3.1.3