共2条
1/1 1 跳转至页

问
我想用zlg/IP做多任务的程序,一个程序TCP服务器,一个是TCP客户端,单独运行均正常。可是我把两个程序做在一起,利用信号量切换,却怎么也切换不了,难道是因为zlg/ip里面的TCP函数都是不阻塞的造成的?有没有做过的啊,指点下啊。十分感谢!
答 1:
re不是阻塞,默认是等待一段时间就返回,有没有成功得根据返回的参数自己判断了,当然,你想阻塞的话,把信号等待的时间改为0就是阻塞了。
一个任务TCP服务器,一个任务是TCP客户端,分开不是很好吗?为什么要合在一起? 答 2: 可能是我没说清楚可能是我没说清楚,我做了两个任务,一个是TCP服务器等待连接,一个是TCP客户端连接第三台机器(都是很简单的任务)。用信号量切换,可是总是不成功。大概的程序是这样写的:
Sem=OSSemCreate(0);
任务1:
OSSemPend(Sem,0,&err);
Temp=accept(....);
任务2:
Temp=connect(.......)
OSSemPost(Sem);
主要是数据的收发,可是任务总是不能切换??
能指教下吗?谢谢。 答 3: 你好像误解了信号量了Sem=OSSemCreate(1);才对吧?
重新看一下信号量的用户,特别是初始化用法。
答 4: 我不认为你的实验能成功TCP估计坚持不了十分钟就断了。
另外,对于的程序设计好奇,为什么要这样切换呢? 答 5: re信号量的这种用法是为了作为一个信号唤醒挂起的任务,你可以试一下。我试过的。
还有大哥能不能给个切换的例子啊,我这样做就是想试验一下在两个网络任务之间的切换,如果由好的切换方法,能指点下吗?谢谢。
一个任务TCP服务器,一个任务是TCP客户端,分开不是很好吗?为什么要合在一起? 答 2: 可能是我没说清楚可能是我没说清楚,我做了两个任务,一个是TCP服务器等待连接,一个是TCP客户端连接第三台机器(都是很简单的任务)。用信号量切换,可是总是不成功。大概的程序是这样写的:
Sem=OSSemCreate(0);
任务1:
OSSemPend(Sem,0,&err);
Temp=accept(....);
任务2:
Temp=connect(.......)
OSSemPost(Sem);
主要是数据的收发,可是任务总是不能切换??
能指教下吗?谢谢。 答 3: 你好像误解了信号量了Sem=OSSemCreate(1);才对吧?
重新看一下信号量的用户,特别是初始化用法。
答 4: 我不认为你的实验能成功TCP估计坚持不了十分钟就断了。
另外,对于的程序设计好奇,为什么要这样切换呢? 答 5: re信号量的这种用法是为了作为一个信号唤醒挂起的任务,你可以试一下。我试过的。
还有大哥能不能给个切换的例子啊,我这样做就是想试验一下在两个网络任务之间的切换,如果由好的切换方法,能指点下吗?谢谢。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
分享汽车通信和多媒体总线结构被打赏20分 | |
【我踩过的那些坑】结构堵孔导致的喇叭无声问题被打赏50分 | |
NUCLEO-U083RC学习历程38+串口通过队列的方式输出两个字符串被打赏20分 | |
【我踩过的那些坑】分享一下调试一款AD芯片的遇到的“坑”被打赏50分 | |
电流检测模块MAX4080S被打赏10分 | |
【我踩过的那些坑】calloc和malloc错误使用导致跑飞问题排查被打赏50分 | |
分享电控悬架的结构与工作原理(一)被打赏20分 | |
多组DCTODC电源方案被打赏50分 | |
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 |