当前位置: 首页 > news >正文

【服务器通信-socket】——int socket(int domain, int type, int protocol);

#include <sys/types.h>

#include <sys/socket.h>

int socket(int domain, int type, int protocol);

domain:

    AF_INET 这是大多数用来产生socket的协议,使用TCP或UDP来传输,用IPv4的地址

    AF_INET6 与上面类似,不过是来用IPv6的地址

    AF_UNIX 本地协议,使用在Unix和Linux系统上,一般都是当客户端和服务器在同一台及其上的时候使用

type:

    SOCK_STREAM 这个协议是按照顺序的、可靠的、数据完整的基于字节流的连接。这是一个使用最多的socket类型,这个socket是使用TCP来进行传输。

    SOCK_DGRAM 这个协议是无连接的、固定长度的传输调用。该协议是不可靠的,使用UDP来进行它的连接。

    SOCK_SEQPACKET 该协议是双线路的、可靠的连接,发送固定长度的数据包进行传输。必须把这个包完整的接受才能进行读取。

    SOCK_RAW socket 类型提供单一的网络访问,这个socket类型使用ICMP公共协议。(ping、traceroute使用该协议)

    SOCK_RDM 这个类型是很少使用的,在大部分的操作系统上没有实现,它是提供给数据链路层使用,不保证数据包的顺序

protocol:

    传0 :表示使用默认协议。

返回值:

    成功:返回指向新创建的socket的文件描述符

    失败:返回-1,设置errno

解释分析:

socket()打开一个网络通讯端口,

如果成功的话,就像open()一样返回一个文件描述符,应用程序可以像读写文件一样用read/write在网络上收发数据,

如果socket()调用出错则返回-1。

对于IPv4,domain参数指定为AF_INET。

对于TCP协议,type参数指定为SOCK_STREAM,表示面向流的传输协议。

如果是UDP协议,则type参数指定为SOCK_DGRAM,表示面向数据报的传输协议。

protocol参数的介绍从略,指定为0即可

相关文章:

  • DBeaver连接人大金仓数据库V9
  • 上位机知识篇---PSRAM和RAM
  • 【算法基础】三指针排序算法 - JAVA
  • Google机器学习系列 - 监督学习
  • 50.【必备】二分答案法与相关题目
  • 玩转Docker(一):基本概念
  • STM32——GPIO
  • JAVA继承详细总结
  • MySQL 窗口函数
  • 解决Flutter项目中Gradle构建Running Gradle task ‘assembleDebug‘卡顿问题的终极指南
  • Ubuntu系统下Firefox浏览器完整指南:故障修复、国内版安装与下载加速
  • 如何封装一个线程安全、可复用的 HBase 查询模板
  • Midjourney 绘画 + AI 配音:组合玩法打造爆款短视频!
  • 模拟开发授权平台
  • Flutter BottomNavigationBar 详解
  • 定制开发开源AI智能名片S2B2C商城小程序驱动的无界零售基础设施变革研究——基于京东模式的技术解构与商业重构
  • 单链表操作(single list)
  • Unity 与 Lua 交互详解
  • (转)角色与动画的性能优化 | UnrealFest演讲干货
  • 第 7 篇:跳表 (Skip List):简单务实的概率性选手
  • 见证历史与未来共舞:上海西岸“蝶变共生”对话讲坛圆满举行
  • 426.8万人次!长三角铁路创单日客发量历史新高
  • 5月人文社科中文原创好书榜|巫蛊:中国文化的历史暗流
  • 解放日报:抢占科技制高点,赋能新质生产力
  • 北京亦庄启动青年人才创新创业生态示范区
  • 两部门调度部署“五一”假期安全防范工作,要求抓好旅游安全