共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 跳转至页
回复
打赏帖 | |
---|---|
rtthread硬件加密--2crc加密分析被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】mcxa156使用低功耗定时器适配硬件RTC框架被打赏26分 | |
【STM32F769】AI之与本地deepseek对接被打赏50分 | |
Buck电路工作在CCM模式下电感电流的计算公式是什么?被打赏5分 | |
buck电路工作原理被打赏5分 | |
基于MSPM0L1306的MODBUS-RTU协议通讯实验被打赏100分 | |
我想要一部加热台+多合一调试工具被打赏18分 | |
每周了解几个硬件知识+485硬件知识分享被打赏10分 | |
【换取手持示波器】TouchGFX应用移植自定义屏幕被打赏34分 | |
【换取手持数字示波器】树莓派PICO调试器官方固件本地化部署实践被打赏24分 |