在Vxworks中,在什么情况下Send()api会卡住或花费更多时间?

时间:2012-05-22 06:11:56

标签: networking vxworks

我使用两个m / c A和B,两者都具有相同的vxworks图像以及硬件。但只有改变才是应用。假设M / c A是服务器而M / c B是客户端。而以太网客户端M / c上的通信无法发送数据。它被卡住了send()和任务状态将是Pend。

wState = send(vstCCEUSerSocket.wCCEUAcceptFD,(char* )vstCCEUAppTask.rgubyCCEUTxPkt,sizeof(vstCCEUAppTask.rgubyCCEUTxPkt),0);
/*logMsg("\nTrmtd = %d\t",wState);*/ 
if(wState == ERROR) 
{ 
   perror("write"); 
   Close the Fd
}

1 个答案:

答案 0 :(得分:0)

来自VxWorks OS Libraries API Reference

您可以找到有关connect()的信息,但也有一个connectWithTimeout()

Page 1203/1204您可能会发现TCP套接字的一些有趣的项目。例如KEEP_ALIVE

如果您依赖快速连接时间,并且想要保持控制,则可以将connectWithTimeout与保持活动结合起来。

我可能需要一天的时间来回忆旧代码,以检查我在其中一个项目中是如何解决这个问题的。

VxWorks 5.5 Network Programmers Guide - Stream Sockets