共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 【S32DS】S32K3 RTD7.0.1 HSE 组件配置报错问题解决被打赏¥27元 | |
| 【S32K3XX】MCME 启动 CORE1被打赏¥23元 | |
| AG32VH407下温度大气压传感器及其检测被打赏¥20元 | |
| AG32VH407下光照强度传感器BH1750及其检测被打赏¥22元 | |
| AT32VH407下使用温湿度传感器DHT22进行检测被打赏¥20元 | |
| DIY一个婴儿澡盆温度计被打赏¥34元 | |
| 【FreeRtos】FreeRtos+MPU region 配置规则被打赏¥23元 | |
| 【分享开发笔记,赚取电动螺丝刀】三分钟快速上手驱动墨水屏(ArduinoIDE)被打赏¥28元 | |
| 【S32K3XX】LIN 通讯模块使用被打赏¥31元 | |
| 【FreeRtos】FreeRtos + MPU模块的配置使用被打赏¥32元 | |
我要赚赏金
