nonblock recvfrom

nonblock recvfromif(-1==fcntl(iSocketfd,F_SETFL,O_NONBLOCK)){ printf(“fcntlsocketerror!\n”); return-1;}intiSocketLen=sizeof(structsockaddr_in);/*setrecvfromfromservertimeout*/structti

大家好,又见面了,我是你们的朋友全栈君。

if (-1 == fcntl(iSocketfd, F_SETFL, O_NONBLOCK))
{

 printf(“fcntl socket error!\n”);
 return -1;
}
int iSocketLen = sizeof(struct sockaddr_in);

/* set recvfrom from server timeout */
struct timeval tv;
fd_set readfds;
for(;;)
{

 tv.tv_sec = TIME_OUT_TIME;
 tv.tv_usec = 0;
 FD_ZERO(&readfds);
 FD_SET(iSocketfd, &readfds);
 if (select(iSocketfd+1,&readfds,NULL, NULL, &tv) > 0)
 {

  iRecvNum = recvfrom(iSocketfd,(void *)stRecvBuf,sizeof(*(stRecvBuf)),0,    (struct sockaddr *)stRemote,&iSocketLen);
  if (-1 == iRecvNum)
  {

   printf(“received data error!\n”);
  }
  printf(“iRecvNum is %d\n”,iRecvNum);
 }
 else
 {

  printf(“timeout!there is no data arrived!\n”); //return -1
 }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/163456.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号