套接字
#include<sys/socket.h>
int socket(int domain,int type,int protocol);
成功的时候返回文件描述符,否则-1
domain
套接字中使用的协议族(Protocol Family
)信息:
1、PF_INET
→
\to
→IPV4
协议族
2、PF_INET6
→
\to
→IPV6
协议族
3、PF LOCAL
→
\to
→ 本地通信的UNIX
协议族
4、PF PACKET
→
\to
→ 底层套接字的协议族
5、PF IPX
→
\to
→ IPX Novel1
协议族
type
套接字数据传输类型信息:
PF_INET
基础上:
SOCK_STREAM
:数据按序、不会消失、不存在数据边界(面向字节流的)。
SOCK_DGRAM
:快速传输、可能丢失(不按序)、有数据边界且每次数据传输有大小限制。
protocol
计算机间通信中使用的协议信息:
同一协议族中存在多个数据传输方式相同的协议,但只有一个选择的时候,第三个参数可以是0
PF_INET
和SOCK_STREAM
面向连接,第三个参数只有一个选择:IPPROTO_TCP
.
int tcp_socket = socket(PF_INET,SOCK_STREAM, IPPROT_TCP);
UDP
也只有一种。
int udp_socket = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);