在linux里用C++做socket实验,报connect:invalid argument是为什么??

weixin_40284489 2019-01-05 08:56:51

int main(int argc,char *argv[])

{

int sockfd, numbytes;

char buf[MAXDATASIZE];

struct hostent *he;

struct sockaddr_in their_addr; /* connector's address information */

if (argc != 3) {

fprintf(stderr,"usage: client hostname\n");

exit(1);

}



if ((he=gethostbyname(argv[2])) == NULL) { /* get the host info */

herror("gethostbyname");

exit(1);

}



if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {

perror("socket");

exit(1);

}

//cout << sockfd << endl;

their_addr.sin_family = AF_INET; /* host byte order */

their_addr.sin_port = htons(PORT); /* short, network byte order */

their_addr.sin_addr = *((struct in_addr *)he->h_addr);

bzero(&(their_addr.sin_zero),8); /* zero the rest of the struct */



if(connect(sockfd,(struct sockaddr*)&their_addr,sizeof(struct sockaddr)) == -1){

perror("connect");


}

...全文
616 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

4,358

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧