硬汉嵌入式论坛

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

[RL-TCPnet] RL-TCPnet的BSD Socket API缺少函数

[复制链接]

36

主题

142

回帖

255

积分

高级会员

积分
255
发表于 2019-9-21 11:51:05 | 显示全部楼层 |阅读模式
使用RL-TCPnet作为TCP/IP协议栈发现缺少4个函数
select(),fcntl(),getsockopt(),setsockopt()
怎样补全,有什么建议
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107524
QQ
发表于 2019-9-21 11:54:30 | 显示全部楼层
需要这些的话,后面使用新版V7.X就行,比较全了

accept — Accept connect request for a listening socket. [thread-safe].
bind — Assign a local address and port to a socket. [thread-safe].
closesocket — Close socket and release socket descriptor. [thread-safe].
connect — Connect a socket to a remote host. [thread-safe].
gethostbyname — Retrieve host IP address from host name. [thread-safe].
getpeername — Retrieve IP address and port number of the endpoint node. [thread-safe].
getsockname — Retrieve local IP address and port number. [thread-safe].
getsockopt — Retrieve options for the socket. [thread-safe].
ioctlsocket — Control IO mode of a socket. [thread-safe].
listen — Set a socket in a listening mode. [thread-safe].
recv — Receive data on already connected socket. [thread-safe].
recvfrom — Receive data from endpoint node. [thread-safe].
recvmsg — Receive a message from a socket. [thread-safe].
select — Check the status of one or more sockets. [thread-safe].
send — Send data on already connected socket. [thread-safe].
sendto — Send data to endpoint node. [thread-safe].
sendmsg — Send a message to endpoint node. [thread-safe].
setsockopt — Manipulate options for the socket. [thread-safe].
socket — Create a communication endpoint called socket. [thread-safe].
inet_addr — Convert from text address to a network address. [thread-safe].
inet_aton — Convert from text address to a network address. [thread-safe].
inet_ntoa — Convert from network address to a text string. [not_thread-safe].
inet_pton — Convert from text address to a binary network address. [thread-safe].
inet_ntop — Convert from binary network address to a text string. [thread-safe].
回复

使用道具 举报

36

主题

142

回帖

255

积分

高级会员

积分
255
 楼主| 发表于 2019-9-21 12:37:51 | 显示全部楼层
可惜现在使用的是RTX,新版V7.X还是缺少fcntl函数,LWIP有提供
#if LWIP_POSIX_SOCKETS_IO_NAMES
#define read(a,b,c)           lwip_read(a,b,c)
#define write(a,b,c)          lwip_write(a,b,c)
#define close(s)              lwip_close(s)
#define fcntl(a,b,c)          lwip_fcntl(a,b,c)
#endif /* LWIP_POSIX_SOCKETS_IO_NAMES */
另外新版V7.X还是没发现支持WebSocket
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107524
QQ
发表于 2019-9-21 13:18:43 | 显示全部楼层
takent 发表于 2019-9-21 12:37
可惜现在使用的是RTX,新版V7.X还是缺少fcntl函数,LWIP有提供
#if LWIP_POSIX_SOCKETS_IO_NAMES
#define ...

1、新版不限制RTX,各种RTOS都支持,用户添加个CMSIS-RTOS封装层即可,当前RTX和FreeRTOS已经原生支持。
2、主要是send,  recv,其他函数函数很少用,或者基本没用过。像老版的那就已经足够用了。
3、 而Websocket还是移植个第3方组件吧
回复

使用道具 举报

36

主题

142

回帖

255

积分

高级会员

积分
255
 楼主| 发表于 2019-9-21 15:27:49 | 显示全部楼层
Websocket的第3方组件要求的函数很全,基本上都用到了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107524
QQ
发表于 2019-9-21 15:36:16 | 显示全部楼层
takent 发表于 2019-9-21 15:27
Websocket的第3方组件要求的函数很全,基本上都用到了

那我明白了,你是为了搞WebSocket而搞这些东西。

没问题的,你像emNET,也是好几个BSD Socket没有,但是他们的支持WebSocket,所以依然是好些都用不到。

所以老版本的那几个就足够。
回复

使用道具 举报

36

主题

142

回帖

255

积分

高级会员

积分
255
 楼主| 发表于 2019-9-21 15:41:21 | 显示全部楼层
是的,我移植mongoose,要用HTTP server,WebSocket server。缺少select(),fcntl(),getsockopt(),setsockopt()函数。求硬件指点,不行就只能用LWIP了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107524
QQ
发表于 2019-9-21 15:46:38 | 显示全部楼层
BSD Socket API
QQ截图20190921154506.jpg


WebSocket API
QQ截图20190921154533.jpg
回复

使用道具 举报

36

主题

142

回帖

255

积分

高级会员

积分
255
 楼主| 发表于 2019-9-21 15:51:34 | 显示全部楼层

什么库?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107524
QQ
发表于 2019-9-21 15:56:57 | 显示全部楼层
takent 发表于 2019-9-21 15:41
是的,我移植mongoose,要用HTTP server,WebSocket server。缺少select(),fcntl(),getsockopt(),setsock ...

如果你要移植mongoose,那你还是用lwip吧,毕竟你需要的函数都有。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107524
QQ
发表于 2019-9-21 15:58:19 | 显示全部楼层

【STM32H743实验例程】实验22:SEGGER为H7配套的embOS及其所有中间件的大综合设计
http://www.armbbs.cn/forum.php?m ... 9010&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

36

主题

142

回帖

255

积分

高级会员

积分
255
 楼主| 发表于 2019-9-21 15:59:20 | 显示全部楼层
好的,谢谢了
回复

使用道具 举报

36

主题

142

回帖

255

积分

高级会员

积分
255
 楼主| 发表于 2019-9-21 16:22:17 | 显示全部楼层
如果RTX用新版V7.X有教程吗,我怕LWIP+RTX坑比较多
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107524
QQ
发表于 2019-9-21 16:32:56 | 显示全部楼层
takent 发表于 2019-9-21 16:22
如果RTX用新版V7.X有教程吗,我怕LWIP+RTX坑比较多

还没有发布,近期上线模板
回复

使用道具 举报

36

主题

142

回帖

255

积分

高级会员

积分
255
 楼主| 发表于 2019-9-23 11:51:30 | 显示全部楼层
我还是想使用新版V7.X,缺少fcntl函数不影响,fcntl函数只是将socket设置为非阻塞模式,而我们使用OS就是非阻塞模式,所以想用V7.X+RTX的组合,求硬汉指点,V7.X在RTX的使用
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107524
QQ
发表于 2019-9-23 12:37:48 | 显示全部楼层
takent 发表于 2019-9-23 11:51
我还是想使用新版V7.X,缺少fcntl函数不影响,fcntl函数只是将socket设置为非阻塞模式,而我们使用OS就是非 ...

好的,我争取早点分享工程给大家
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-4 17:30 , Processed in 0.230667 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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