linux socket connect error,LINUX SOCKET编程connect error!: Socket operation on non-socket

#includetypedef struct sockaddr_in st;

typedef struct sockaddr sd;

#define SERVPORT 3333

#define MAXDATASIZE 100

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

{

int sockfd,recvbytes;

char buf[MAXDATASIZE];

struct hostent *host;

st servaddr;

if(argc<2){

fprintf(stdin,"please enter the sercer's hostname!\n");

exit(1);

}

if((host = gethostbyname(argv[1])) == NULL){

perror("gethostbyname error!");

exit(1);

}

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

perror("socket creat error!");

exit(1);

}

servaddr.sin_family = AF_INET;

servaddr.sin_port = htons(SERVPORT);

servaddr.sin_addr = *((struct in_addr *)host->h_addr);

//inet_pton( AF_INET, "127.0.0.3", &servaddr.sin_addr );

bzero(&(servaddr.sin_zero),8);

if (connect(sockfd,(sd *)&servaddr,sizeof(sd)) == -1){

perror("connect error!");

exit(1);

}

if((recvbytes = recv(sockfd,buf,MAXDATASIZE,0)) == -1){

perror("receve error!");

exit(1);

}

buf[recvbytes] = '\0';

printf("receve:%s",buf);

close(sockfd);

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值