TI中文支持网
TI专业的中文技术问题搜集分享网站

C6678 UDP主动发送问题

       各位大神,各位TI工程师好!

              我在开发我公司的C6678板卡的网络遇到这样的问题,我参考的NDK里的Client例程弄的,目前TCP协议都通信传输数据正常。现在我要实现DSP采用UDP协议主动往指定IP地址和端口号的PC机发数据的功能,因为要主动发送,我采用的是老的TaskCreate创建任务线程方式。在该任务里主动发送发现Sendto函数返回值也正确,但就是PC机上的网络调试助手收不到数据?以下是我的代码,看下是否有问题:

  • SOCKET socClient = socket(AF_INET, SOCK_DGRAM, 0); 
  • SOCKADDR_IN addrSrv;        // a instance of SOCKADDR_IN, which is used in format of SOCKADDR. 
  •  addrSrv.sin_addr.S_un.S_addr=inet_addr("192.168.10.119");        //set the host IP  
  •  addrSrv.sin_family=AF_INET;     //set the protocol family  
  •  addrSrv.sin_port=htons(HOST_PORT);      //set the port number  
  •  
  •   // array to store the data that server feedback.  
  •  char cRecvBuf[100];  
  •  
  •     //while   
  •     while(true){  
  •         sendto(socClient, cRecvBuf, 100, 0, (SOCKADDR*) &addrSrv, sizeof(SOCKADDR));  
  •  
  •     } 


user3604554:

回复 Shine:

   Shine Zhang

                               你好!

             我今天按照你给的链接里的4544.udpHello.c中的函数进行了测试,发现还是上位机还是接收不到数据!我在

sendto(socksend, buff1, buff_size1, 0, (struct sockaddr *)&cliAddr, sa_size1);函数前面加上

i = (int)recvncfrom( s, (void **)&pBuf, 0, (PSA)&sinData, &tmp, &hBuffer );函数后,PC机先主动发送下来,recvncfrom函数能接收到,在然后运行sendto函数发送给PC机,这时PC机才能接收到!请问还有什么地方没设置对造成的吗?

user3604554:

回复 user3604554:

                    今天我按照那个函数里面的把没加的TASKSleep函数就可以,原来是这样,这里TASKSleep函数应该是让软件整个系统都运行起来,才可以发送UDP数据吧!

赞(0)
未经允许不得转载:TI中文支持网 » C6678 UDP主动发送问题
分享到: 更多 (0)