硬汉嵌入式论坛

 找回密码
 立即注册
查看: 862|回复: 4
收起左侧

[RL-TCPnet] 如何把RL-TCPnet设置为非阻塞?

[复制链接]

12

主题

32

回帖

68

积分

初级会员

积分
68
发表于 2021-11-19 11:24:40 | 显示全部楼层 |阅读模式
最近一直发现透传的程序一直卡在recvfrom和recv函数内,看了RL-TCPnet官网,发现它阻塞在那了。看介绍应该还有一个非阻塞的状态,看了手册所有函数:发现设置非阻塞的函数是“ ioctlsocket”
#include <rtl.h>__task void server (void) {  int sock,res;  unsigned long sck_mode;  sock = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);  /* 0= blocking, 1= non-blocking */  sck_mode = 1;  res = ioctlsocket (sock, FIONBIO, &sck_mode);  if (res == SCK_SUCCESS) {    printf ("Nonblocking mode enabled.\n");  }  else {    printf ("ioctlsocket() error\n!");  }  ..}


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106760
QQ
发表于 2021-11-19 11:26:52 | 显示全部楼层
你这个是老版的还是新版的。
回复

使用道具 举报

12

主题

32

回帖

68

积分

初级会员

积分
68
 楼主| 发表于 2021-11-19 15:17:34 | 显示全部楼层
本帖最后由 su6666 于 2021-11-19 15:25 编辑

老的,不过TCP服务recvfrom返回的是“sock标识的套接字无效,或处于无效状态。”,
回复

使用道具 举报

12

主题

32

回帖

68

积分

初级会员

积分
68
 楼主| 发表于 2021-11-19 15:46:47 | 显示全部楼层
su6666 发表于 2021-11-19 15:17
老的,不过TCP服务recvfrom返回的是“用sock标识的套接字无效,或处于无效状态。”,

发现TCP透传,需要把ioctlsocket放到accept函数下面。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106760
QQ
发表于 2021-11-20 01:08:06 | 显示全部楼层
我之前的整理
QQ截图20211120010712.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-5 00:57 , Processed in 0.193728 second(s), 32 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表