1、函数原型

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

1.1 参数

这三个参数都是int类型的,但是他们各自有各自的含义,下面我们针对这三个参数进行分析:

(1)int domin:即协议域,又称为协议族。协议族决定了socket的地址类型,在通信中必须采用对应的地址,如AF_INET(IPV4)、AF_INET6(IPV6)、AF_LOCAL(或称AF_UNIX,Unix域socket)、AF_ROUTE等等。通常情况下我们使用AF_INET。

AF_INET的定义是:#define AF_INET 2,所以这里的参数都是int型的

(2)int type:是套接口类型,主要SOCK_STREAM(建立TCP连接)、SOCK_DGRAM(建立UDP)、SOCK_RAW;

SOCK_STREAM(建立TCP连接):提供面向连接的可靠的数据传输服务。数据被看作是字节流,无长度限制。例如FTP协议就采用这种。

SOCK_DGRAM(建立UDP):提供无连接的数据传输服务,不保证可靠性。

SOCK_RAW:该接口允许对较低层次协议,如IP,ICMP直接访问。

(3)int protocol:指定协议。常用的协议有,IPPROTO_TCP、IPPTOTO_UDP、IPPROTO_SCTP、IPPROTO_TIPC等,它们分别对应TCP传输协议、UDP传输协议、STCP传输协议、TIPC传输协议。通常情况系设为0。

注意:并不是上面的type和protocol可以随意组合的,如SOCK_STREAM不可以跟IPPROTO_UDP组合。当protocol为0时,会自动选择type类型对应的默认协议。

2、所在头文件

#include <sys/types.h>

#include <sys/socket.h>

3、函数返回值

成功:返回套接字描述符(套接字的索引)

失败:返回-1

4、函数功能

返回一个套接字描述符,一个套接字描述符相当于一个套接字的索引号,在后续操作中是通过该索引号找到套接字进行操作。类似于文件描述符。

c++网络编程中socket函数相关推荐

  1. C++ tcpip网络编程中listen函数和accept函数详解和区别

    listen函数 摘要:listen函数使用主动连接套接口变为被连接套接口,使得一个进程可以接受其它进程的请求,从而成为一个服务器进程.在TCP服务器编程中listen函数把进程变为一个服务器,并指定 ...

  2. linux网络编程中listen函数 backlog的含义

    结论: backlog 是用来指定在TCP连接时,同时进行 3次握手建立连接的客户端数量 listen函数在一般在调用bind之后-调用accept之前调用, 它的函数原型是: #include< ...

  3. C语言网络编程:socket函数

    函数描述 头文件 <sys/types.h> <sys/socket.h> 函数使用int socket(int domain, int type, int protocol) ...

  4. SOCKET编程中,select()函数的作用

    SOCKET编程中,select()函数的作用Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect.accep ...

  5. c++中recvfrom函数_通俗易懂:快速理解网络编程中5种IO模型

    关于IO模型,就必须先谈到几个日常接触的几个与IO相关名字:同步,异步,阻塞,非阻塞. 名词解释 同步 如果事件A需要等待事件B的完成才能完成,这种串行执行机制可以说是同步的,这是一种可靠的任务序列, ...

  6. 网络编程中的关键问题总结

    网络编程中的关键问题总结 总结下网络编程中关键的细节问题,包含连接建立.连接断开.消息到达.发送消息等等: 连接建立 包括服务端接受 (accept) 新连接和客户端成功发起 (connect) 连接 ...

  7. python的功能模块_Python的功能模块[1] - struct - struct 在网络编程中的使用

    struct模块/ struct Module 在网络编程中,利用 socket 进行通信时,常常会用到 struct 模块,在网络通信中,大多数传递的数据以二进制流(binary data)存在.传 ...

  8. Python 网络编程(Socket)

    Python 网络编程(Socket) 一.Socket 套接字 1.Socket 编程 socket本质是编程接口(API),对TCP/IP的封装,提供可供程序员做网络开发所用的接口.Socket ...

  9. 实例解析网络编程中的另类内存泄漏

    本文分享自华为云社区<[网络编程开发系列]一种网络编程中的另类内存泄漏>,作者:架构师李肯. 1 写在前面 最近在排查一个网络通讯的压测问题,最后发现跟"内存泄漏"扯上 ...

最新文章

  1. Native与H5交互的那些事
  2. web语义化与h5新增标签
  3. 【编撰】linux IPC 001 - 概述
  4. 计算机操作员(中级工)理论知识试卷,计算机操作员中级工理论试卷.doc
  5. 20145226夏艺华 《Java程序设计》预备作业3
  6. centos 4.4配置使用
  7. Android 驱动(17)---如何在linux中添加新的kernel module
  8. python qt5 数据改变 触发信号_pyqt5 使用 QTimer, QThread, pyqtSignal 实现自动执行,多线程,自定义信号触发。...
  9. 2021-07-28 cad贱人工具箱5.8
  10. Java培训机构可靠吗?
  11. Vue前端验证一个text只能输入手机号或邮箱
  12. 《孤独的美食家》60家餐厅超全觅食攻略,吃货必收!
  13. 十六周项目一----冒泡排序
  14. c语言1 qnan,什么是 1.#QNAN?
  15. 电脑开机后显示屏只显示品牌Logo就黑屏
  16. 资源管理框架(mesos/YARN/coraca/Torca/Omega)选型分析
  17. 杰理AC693N介绍
  18. Linux系列教程虚拟机安装虚拟化开启
  19. python分析股票主力_python如何获取股票数据,python股票分析系统
  20. signature=daa3bbe3ad9a7c162ba9d98f8d9e7530,解决select2插件下拉搜索框,输入拼音能够匹配中文汉字的问题...

热门文章

  1. python if elif else_Python的 if .else.elif语句详解
  2. Xshell中文乱码解决办法
  3. 基于骨骼的动作识别:PoseConv3D
  4. nacos注册中心发现不到服务
  5. 微信小程序案例 大全
  6. LinuxProbe学习笔记(八)
  7. 怎么在本地运行umi框架的生产模式
  8. 猜数游戏c语言程序流程图,C语言猜数游戏代码
  9. 高颜值的第三方网易云播放器—YesPlayerMusic
  10. js生成随机数/数组(marksheng)