socket()函数介绍
来源:互联网 发布:sql的delete 编辑:程序博客网 时间:2024/06/01 10:22
socket()函数介绍
- socket函数介绍
- 函数原型
- domain
- type
- protocol
- errno
- 示例
函数原型
socket()函数的原型如下,这个函数建立一个协议族为domain、协议类型为type、协议编号为protocol的套接字文件描述符。如果函数调用成功,会返回一个标识这个套接字的文件描述符,失败的时候返回-1。
#include<sys/types.h>#include<sys/socket.h>int socket(int domain, int type, int protocol);
domain
函数socket()的参数domain用于设置网络通信的域,函数socket()根据这个参数选择通信协议的族。通信协议族在文件sys/socket.h中定义。
表1 domain的值及含义
type
函数socket()的参数type用于设置套接字通信的类型,主要有SOCKET_STREAM(流式套接字)、SOCK——DGRAM(数据包套接字)等。
表2 type的值及含义
并不是所有的协议族都实现了这些协议类型,例如,AF_INET协议族就没有实现SOCK_SEQPACKET协议类型。
protocol
函数socket()的第3个参数protocol用于制定某个协议的特定类型,即type类型中的某个类型。通常某协议中只有一种特定类型,这样protocol参数仅能设置为0;但是有些协议有多种特定的类型,就需要设置这个参数来选择特定的类型。
- 类型为SOCK_STREAM的套接字表示一个双向的字节流,与管道类似。流式的套接字在进行数据收发之前必须已经连接,连接使用connect()函数进行。一旦连接,可以使用read()或者write()函数进行数据的传输。流式通信方式保证数据不会丢失或者重复接收,当数据在一段时间内任然没有接受完毕,可以将这个连接人为已经死掉。
- SOCK_DGRAM和SOCK_RAW 这个两种套接字可以使用函数sendto()来发送数据,使用recvfrom()函数接受数据,recvfrom()接受来自制定IP地址的发送方的数据。
- SOCK_PACKET是一种专用的数据包,它直接从设备驱动接受数据。
errno
函数socket()并不总是执行成功,有可能会出现错误,错误的产生有多种原因,可以通过errno获得:
表3 errno的值及含义
示例
建立一个流式套接字:
int sock = socket(AF_INET, SOCK_STREAM, 0);
2 0
- loadrunner socket 函数介绍
- socket函数使用介绍
- SOCKET 函数介绍
- socket()函数介绍
- socket()函数介绍
- linux socket编程之socket()函数介绍
- linux socket编程之socket()函数介绍
- linux socket编程之socket()函数介绍
- socket函数基本使用介绍
- TCP socket基本函数介绍
- 与socket有关的一些函数介绍
- 与socket有关的一些函数介绍
- 与socket有关的一些函数介绍
- 与socket有关的一些函数介绍
- 与socket有关的一些函数介绍
- 与socket有关的一些函数介绍
- socket 应用函数之 gethostbyname 介绍
- 与socket有关的一些函数介绍
- LeetCode-Binary Tree Level Order Traversal II
- 算法训练 安慰奶牛 (Kruscal算法求最小生成树)
- 理解网络基础
- transfrom属性
- Memcache基础教程
- socket()函数介绍
- Android 各种时间格式转换
- 【PAT】1024. Palindromic Number (25)
- Ant模板
- mybatis generator 工具的使用
- java IO包装流如何关闭?
- c11新标准之delete,default,override,final
- Android 禁止屏幕旋转 & 旋转屏幕时保持Activity内容
- 失效分析之设计问题:ADF4360没用输出管脚的匹配处理