c++网络编程中socket函数
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函数相关推荐
- C++ tcpip网络编程中listen函数和accept函数详解和区别
listen函数 摘要:listen函数使用主动连接套接口变为被连接套接口,使得一个进程可以接受其它进程的请求,从而成为一个服务器进程.在TCP服务器编程中listen函数把进程变为一个服务器,并指定 ...
- linux网络编程中listen函数 backlog的含义
结论: backlog 是用来指定在TCP连接时,同时进行 3次握手建立连接的客户端数量 listen函数在一般在调用bind之后-调用accept之前调用, 它的函数原型是: #include< ...
- C语言网络编程:socket函数
函数描述 头文件 <sys/types.h> <sys/socket.h> 函数使用int socket(int domain, int type, int protocol) ...
- SOCKET编程中,select()函数的作用
SOCKET编程中,select()函数的作用Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect.accep ...
- c++中recvfrom函数_通俗易懂:快速理解网络编程中5种IO模型
关于IO模型,就必须先谈到几个日常接触的几个与IO相关名字:同步,异步,阻塞,非阻塞. 名词解释 同步 如果事件A需要等待事件B的完成才能完成,这种串行执行机制可以说是同步的,这是一种可靠的任务序列, ...
- 网络编程中的关键问题总结
网络编程中的关键问题总结 总结下网络编程中关键的细节问题,包含连接建立.连接断开.消息到达.发送消息等等: 连接建立 包括服务端接受 (accept) 新连接和客户端成功发起 (connect) 连接 ...
- python的功能模块_Python的功能模块[1] - struct - struct 在网络编程中的使用
struct模块/ struct Module 在网络编程中,利用 socket 进行通信时,常常会用到 struct 模块,在网络通信中,大多数传递的数据以二进制流(binary data)存在.传 ...
- Python 网络编程(Socket)
Python 网络编程(Socket) 一.Socket 套接字 1.Socket 编程 socket本质是编程接口(API),对TCP/IP的封装,提供可供程序员做网络开发所用的接口.Socket ...
- 实例解析网络编程中的另类内存泄漏
本文分享自华为云社区<[网络编程开发系列]一种网络编程中的另类内存泄漏>,作者:架构师李肯. 1 写在前面 最近在排查一个网络通讯的压测问题,最后发现跟"内存泄漏"扯上 ...
最新文章
- Native与H5交互的那些事
- web语义化与h5新增标签
- 【编撰】linux IPC 001 - 概述
- 计算机操作员(中级工)理论知识试卷,计算机操作员中级工理论试卷.doc
- 20145226夏艺华 《Java程序设计》预备作业3
- centos 4.4配置使用
- Android 驱动(17)---如何在linux中添加新的kernel module
- python qt5 数据改变 触发信号_pyqt5 使用 QTimer, QThread, pyqtSignal 实现自动执行,多线程,自定义信号触发。...
- 2021-07-28 cad贱人工具箱5.8
- Java培训机构可靠吗?
- Vue前端验证一个text只能输入手机号或邮箱
- 《孤独的美食家》60家餐厅超全觅食攻略,吃货必收!
- 十六周项目一----冒泡排序
- c语言1 qnan,什么是 1.#QNAN?
- 电脑开机后显示屏只显示品牌Logo就黑屏
- 资源管理框架(mesos/YARN/coraca/Torca/Omega)选型分析
- 杰理AC693N介绍
- Linux系列教程虚拟机安装虚拟化开启
- python分析股票主力_python如何获取股票数据,python股票分析系统
- signature=daa3bbe3ad9a7c162ba9d98f8d9e7530,解决select2插件下拉搜索框,输入拼音能够匹配中文汉字的问题...