查看: 5570|回复: 4

[求助] 关于如何设置tcp通信时accept为非阻塞模式的问题

[复制链接]

该用户从未签到

1

主题

16

帖子

0

注册会员

Rank: 2

积分
51
最后登录
1970-1-1
发表于 2014-6-19 16:14:06 | 显示全部楼层 |阅读模式
 如题,请问下K60开发板作为tcp服务端时,如何设置accept为非阻塞模式?我不想让程序一直在等待,以致影响到别的任务的运行,求大侠指点下吧!
我知道答案 目前已有3人回答
回复

使用道具 举报

该用户从未签到

3

主题

99

帖子

0

中级会员

Rank: 3Rank: 3

积分
322
最后登录
1970-1-1
发表于 2014-6-20 20:34:33 | 显示全部楼层

回复:关于如何设置tcp通信时accept为非阻塞模式的问题

在accept() 前用RTCS_selectall()检测是否有连接。
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

16

帖子

0

注册会员

Rank: 2

积分
51
最后登录
1970-1-1
 楼主| 发表于 2014-6-21 11:17:54 | 显示全部楼层

回复:关于如何设置tcp通信时accept为非阻塞模式的问题

你好,非常感谢你的回答,我是个MQX的菜鸟,听不明白,请问能不能贴个例子程序呀,万分感谢呀!!!
·
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

99

帖子

0

中级会员

Rank: 3Rank: 3

积分
322
最后登录
1970-1-1
发表于 2014-6-23 23:48:44 | 显示全部楼层

回复:关于如何设置tcp通信时accept为非阻塞模式的问题

回复第 3 楼 于2014-06-21 11:17:54发表:
你好,非常感谢你的回答,我是个MQX的菜鸟,听不明白,请问能不能贴个例子程序呀,万分感谢呀!!!
·
 

原理很简单。accept还是阻塞模式的,只是运行accpt()前用RTCS_selectall()检测是否有连接近来,如果有就执行accept()把连接接过来,如果没有就不运行accept(),弄一些延时什么的把资源让给别的任务。 这样:
 
while(1)
{
               Connect_Sockect=RTCS_selectall(0);
               if(Connect_Socket== Listen_Socket)
 
               {
                           Child_Socket= accpet(......);
                           ......
               }
              else
              {
                          RTCS_time_delay(......);
                          ..................
              }
}
 
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2018-9-20 10:55
  • 签到天数: 13 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    24

    主题

    1189

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1642
    最后登录
    2022-3-21
    发表于 2014-7-4 17:03:33 | 显示全部楼层

    RE:关于如何设置tcp通信时accept为非阻塞模式的问题

    超级感谢, RTCS_selectall是不是相当于linux select 不用配置端口吗?
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 21:33 , Processed in 0.093941 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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