共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网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |