第四章 基本TCP套接字编程
4.1 概述
4.2 socket函数
- 为了执行网络I/O,一个进程第一步就是调用socket函数,指定期望的通信协议。(如TCP、UDP)
#include <sys/socket.h>
//成功返回非负描述符,失败返回-1
int socket(int family, int type, int protocol);
- 一个基本的TCP网络编程模型如下:
family | 说明 |
---|---|
AF_INET | IPv4 |
AF_INET6 | IPv6 |
AF_LOCAL | UNIX域协议 |
AF_ROUTE | 路由套接字 |
AF_KEY | 密钥套接字 |
type | 说明 |
---|---|
SOCK_STREAM | 字节流套接字 |
SOCK_DGRAM | 数据报套接字 |
SOCK_SEQPACKET | 有序分组套接字 |
SOCK_RAW | 原始套接字 |
protocol | 说明 |
---|---|
IPPROTO_CP | TCP |
IPPROTO_UDP | UDP |
IPPROTO_SCTP | SCTP |
- AF前缀表示地址族,PF前缀表示协议族
4.3 connect函数
- TCP使用connect函数建立TCP连接。
#include <sys/socket.h>
//成功返回0, 否则返回-1
int connect(