C语言connect()函数:建立socket连线
相关函数:socket, bind, listen
头文件:#include <sys/types.h> #include <sys/socket.h>
定义函数:int connect(int sockfd, struct sockaddr * serv_addr, int addrlen);
函数说明:connect()用来将参数sockfd 的socket 连至参数serv_addr 指定的网络地址. 结构sockaddr请参考bind(). 参数addrlen 为sockaddr 的结构长度.
返回值:成功则返回0, 失败返回-1, 错误原因存于errno 中.
错误代码:
1、EBADF 参数sockfd 非合法socket 处理代码
2、EFAULT 参数serv_addr 指针指向无法存取的内存空间
3、ENOTSOCK 参数sockfd 为一文件描述词, 非socket.
4、EISCONN 参数sockfd 的socket 已是连线状态
5、 ETIMEDOUT 企图连线的操作超过限定时间仍未有响应.
6、ENETUNREACH 无法传送数据包至指定的主机.
7、EAFNOSUPPORT sockaddr 结构的sa_family 不正确.
8、EALREADY socket 为不可阻断且先前的连线操作还未完成.
头文件:#include <sys/types.h> #include <sys/socket.h>
定义函数:int connect(int sockfd, struct sockaddr * serv_addr, int addrlen);
函数说明:connect()用来将参数sockfd 的socket 连至参数serv_addr 指定的网络地址. 结构sockaddr请参考bind(). 参数addrlen 为sockaddr 的结构长度.
返回值:成功则返回0, 失败返回-1, 错误原因存于errno 中.
错误代码:
1、EBADF 参数sockfd 非合法socket 处理代码
2、EFAULT 参数serv_addr 指针指向无法存取的内存空间
3、ENOTSOCK 参数sockfd 为一文件描述词, 非socket.
4、EISCONN 参数sockfd 的socket 已是连线状态
5、 ETIMEDOUT 企图连线的操作超过限定时间仍未有响应.
6、ENETUNREACH 无法传送数据包至指定的主机.
7、EAFNOSUPPORT sockaddr 结构的sa_family 不正确.
8、EALREADY socket 为不可阻断且先前的连线操作还未完成.