socket

socket

1、socket的类型

1)流式套接字(SOCK_STREAM)

提供了一个面向连接、可靠的数据传输服务,数据无差错、无重复的发送且按发送顺序接收。内设置流量控制,避免数据流淹没慢的接收方。数据被看作是字节流,无长度限制。

2)数据报套接字(SOCK_DGRAM)

​ 提供无连接服务。数据包以独立数据包的形式被发送,不提供无差错保证,数据可能丢失或重复,顺序发送,可能乱序接收。

3)原始套接字(SOCK_RAW)

​ 可以对较低层次协议如IP、ICMP直接访问。

2、属于TCP网络编程:socket()

1)头文件

1
2
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>

2)函数原型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int socket(int domain, int type, int protocol);
功能:创建套接字,返回文件描述符
参数:
domain:通信域,协议族
AF_UNIX 本地通信
AF_INET ipv4网络协议
type:套接字类型
SOCK_STREAM 流式套接字 tcp
SOCK_DGRAM 数据报套接字 UDP
SOCK_RAW 原始套接字
protocol:协议
一般为0
返回值:
成功:文件描述符
失败:-1