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
 }
}

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

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

(0)
上一篇 2022年7月23日 下午5:00
下一篇 2022年7月23日 下午5:00


相关推荐

  • JavaScript 弹出框(警告框、确认框、提示框)

    JavaScript 弹出框(警告框、确认框、提示框)一 警告框如果要确保信息传递给用户 通常会使用警告框 当警告框弹出时 用户将需要单击 确定 来继续 script 警告框 window alert 成功弹出警告框 window alert 方法可以不带 window 前缀 alert 成功弹出警告框 script 显示结果二 确认框如果您希望用户验证或接受某个东西 则通常使用 确认 框 当确认框弹出时 用户将不得不单击 确定 或 取消 来继续进行 amp l

    2026年3月18日
    1
  • 360推出全网首份OpenClaw安全部署指南

    360推出全网首份OpenClaw安全部署指南

    2026年3月12日
    2
  • 配置tomcat的环境变量

    配置tomcat的环境变量配置Tomcat的环境变量注意:配值tomcat之前要将JDK的JAVA_HOME和path都配置好,否则后续会出现Tomcat无法启动或者闪退等问题。1.首先下载tomcat,并且解压到目录:2.第二步鼠标右键计算机->属性->高级系统设置,进去之后,点击环境变量,如下图所示3.第三步开始配置tomcat的环境变量,新建系统变量名CATALINA_BASE,值为tomcat的安装路径,如下图所示:4.第四步新建系统变量CATALINA_HOME,值tomcat

    2022年6月3日
    28
  • 全国各地运营商dns列表(供查询)

    全国各地运营商dns列表(供查询)DNS列表 省份 城市 中国电信 中国联通 中国移动 教育网 云南 昭通 222.172.200.68 61.166.150.123 221.3.131.11 221.3.131.12 211.139.29.170 202.203.66.3

    2022年5月30日
    138
  • sat错题分数换算表_awing

    sat错题分数换算表_awing给定 n 个还未赋值的布尔变量 x1∼xn。现在有 m 个条件,每个条件的形式为 “xi 为 0/1 或 xj 为 0/1 至少有一项成立”,例如 “x1 为 1 或 x3 为 0”、“x8 为 0 或 x4 为 0” 等。现在,请你对这 n 个布尔变量进行赋值(0 或 1),使得所有 m 个条件能够成立。输入格式第一行包含两个整数 n,m。接下来 m 行,每行包含四个整数 i,a,j,b,用来描述一个条件,表示 “xi 为 a 或 xj 为 b”。输出格式如果问题有解,则第一行输出 POSS

    2022年8月10日
    6
  • 正確使用 SetCapture ReleaseCapture [譯]「建议收藏」

    正確使用 SetCapture ReleaseCapture [譯]「建议收藏」本文描述瞭如何正確處理自定義窗口和控件中的鼠標捕獲操作。原文鏈接: http://www.codeproject.com/Tips/127813/Using-SetCapture…correctly.aspx原作者: pasztorpisti轉載請註明出處:http://www.imoldman.com/2010/11/30/using-setcaptu…ture-corre

    2022年5月24日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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