#include <libssh2.h>
int libssh2_session_handshake(LIBSSH2_SESSION *session, libssh2_socket_t socket);
1.描述
session ——由libssh2_session_init_ex返回的会话实例
socket ——连接的套接字描述符。通常,协议中的TCP连接允许任何可靠的传输,库将尝试使用任何berkeley套接字。
开始与连接主机的传输层协议协商。
套接字是网络通信路径的本地端点的抽象表示(句柄)。
Berkeley sockets API将其表示为Unix中的一个文件描述符(文件句柄),它为数据流的输入和输出提供了一个公共接口。简单来说:它们是利用标准 UNIX file descriptors(文件描述符)与其它程序沟通的一种方式。
2.返回值
成功时返回0,失败时返回负数。
3.错误
LIBSSH2_ERROR_SOCKET_NONE-套接字无效。
LIBSSH2_ERROR_BANNER_SEND-无法将标语发送到远程主机。
LIBSSH2_ERROR_KEX_FAILURE->与远程主机的加密密钥交换失败。
LIBSSH2_ERROR_SOCKET_SEND-无法在套接字上发送数据。
LIBSSH2_ERROR_SOCKET_DISCONNECT-套接字已断开连接。
LIBSSH2_ERROR_PROTO-套接字上收到无效的SSH协议响应。
LIBSSH2_ERROR_EAGAIN-标记为非阻塞I / O,但调用将阻塞。