su6666 发表于 2021-11-19 11:24:40

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

最近一直发现透传的程序一直卡在recvfrom和recv函数内,看了RL-TCPnet官网,发现它阻塞在那了。看介绍应该还有一个非阻塞的状态,看了手册所有函数:发现设置非阻塞的函数是“ ioctlsocket”data:image/png;base64,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
#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!");}..}


eric2013 发表于 2021-11-19 11:26:52

你这个是老版的还是新版的。

su6666 发表于 2021-11-19 15:17:34

本帖最后由 su6666 于 2021-11-19 15:25 编辑

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

su6666 发表于 2021-11-19 15:46:47

su6666 发表于 2021-11-19 15:17
老的,不过TCP服务recvfrom返回的是“用sock标识的套接字无效,或处于无效状态。”,

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

eric2013 发表于 2021-11-20 01:08:06

我之前的整理

页: [1]
查看完整版本: 如何把RL-TCPnet设置为非阻塞?