69,371
社区成员
发帖
与我相关
我的任务
分享
unsigned long hostaddr = inet_addr(hostname);
struct sockaddr_in sin;
//connection
*sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_family = AF_INET;
sin.sin_port = htons(22);
sin.sin_addr.s_addr = hostaddr;
int ret = connect(*sock, (struct sockaddr*)(&sin), sizeof(struct sockaddr_in));
printf("socket conn ret:%d\n", ret);
if(ret != 0){
return -1;//failed to connect
}
return 0;
EBADF 参数sockfd 非合法socket处理代码 EFAULT 参数serv_addr指针指向无法存取的内存空间 ENOTSOCK 参数sockfd为一文件描述词,非socket。 EISCONN 参数sockfd的socket已是连线状态 ECONNREFUSED 连线要求被server端拒绝。 ETIMEDOUT 企图连线的操作超过限定时间仍未有响应。 ENETUNREACH 无法传送数据包至指定的主机。 EAFNOSUPPORT sockaddr结构的sa_family不正确。 EALREADY socket为不可阻断且先前的连线操作还未完成。