连接子例程
用途
让协议堆栈管理两个使用 TCP 的套接字。
语法
#include < sys/types.h >
#include < sys/socket.h >
#include < sys/socket.h >
描述
splice 子例程将允许 TCP 管理两个处于已连接状态的套接字,从而使调用者能够将数据从一个套接字移动到另一个套接字。 splice 子例程成功返回后,调用者需要关闭两个套接字。
这两个套接字的类型应该是 SOCK_STREAM 和协议 IPPROTO_TCP。 指定零协议也将起作用。
参数
| 项 | 描述 |
|---|---|
| socket1, socket2 | 指定已通过成功 connect () 或 accept () 的套接字。 |
| 标志 | 设置为零。 当前已忽略。 |
返回值
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 指示成功完成。 |
| -1 | 指示错误。 具体错误由 errno 指示。 |
错误代码
| 项 | 描述 |
|---|---|
| EBADF | socket1 或 socket2 无效。 |
| ENOTSOCK | socket1 或 socket2 引用的是文件,而不是套接字。 |
| EOPNOTSUPP | socket1 或 socket2 的类型不是 SOCK_STREAM。 |
| EINVAL | 参数无效。 |
| EEXIST | socket1 或 socket2 已拼接。 |
| ENOTCONN | socket1 或 socket2 未处于已连接状态。 |
| 电弧炉辅助系统 | 此子例程不支持 socket1 或 socket2 地址系列。 |