0

我正在使用两个 m/c A 和 B,它们都具有相同的 vxworks 映像和硬件。但唯一的变化是应用程序。假设 M/c A 是服务器,M/c B 是客户端。而通过以太网客户端 M/c 的通信无法发送数据。它卡住了 send() 并且任务状态将是挂起。

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

1 回答 1

0

来自VxWorks 操作系统库 API 参考

第 497/498 页您可以找到有关 connect() 的信息,但还有一个 connectWithTimeout()

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

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

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

VxWorks 5.5 网络程序员指南 - 流套接字

于 2012-05-22T07:16:31.327 回答