【创龙TMS320C665x开发板试用】+22 基于SYSBIOS平台的开发 SYS/BIOS (7) ——实现TCP 服务器

1. 初始化外设,启动SYSBIOS。
2.在图形化软件中,使用钩子函数设置线程指定及设定TCP服务器IP地址(图1)

  1. Global.networkOpenHook = '&NetOpenHook';
  2. Global.networkCloseHook = '&NetCloseHook';
复制代码
 
 
图1 指定服务器IP为192.168.1.2

3.在钩子函数中,建立服务器端口及回调函数
 
  1. void NetOpenHook()
  2. {
  3.         hTcp = DaemonNew(SOCK_STREAMNC, 0, 1025, TcpTest, OS_TASKPRINORM, OS_TASKSTKNORM, 0, 3);
  4. }
  5. void NetCloseHook()
  6. {
  7.     DaemonFree(hTcp);
  8. }
复制代码
这里回调测试函数TcpTest。
4 tcp test
  1. int TcpTest(SOCKET s, UINT32 unused)
  2. {
  3.     struct timeval to;
  4.     int i;
  5.     char *pBuf;
  6.     char Title[] = "Tronlong Tcp Server Application ......";
  7.  
  8.         HANDLE hBuffer;
  9.  
  10.     // 配置超时时间 5s
  11.     to.tv_sec  = 5;
  12.     to.tv_usec = 0;
  13.     setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, &to, sizeof(to));
  14.     setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &to, sizeof(to));
  15.  
  16.     // 发送一个固定字符串 长度 38
  17.         send(s, &Title, 38, 0);
  18.     for(;;)
  19.     {
  20.             i = (int)recvnc(s, (void **)&pBuf, 0, &hBuffer);
  21.  
  22.             // 回传接收到的数据
  23.         IF(i > 0)
  24.         {
  25.             if(send(s, pBuf, i, 0 ) < 0)
  26.                 break;
  27.  
  28.             recvncfree(hBuffer);
  29.         }
  30.         else
  31.         {
  32.             break;
  33.         }
  34.     }
  35.     fdClose(s);
  36.  
  37.     return(0);
  38. }
复制代码
建立两个收发socket,同时将TCP服务器接收TCP 客户端的数据,发送到TCP客户机。
 
 
图2 TCP服务器IP
 
 
 
图3 ping 通
详细可以参考TI历程及创龙开发板历程
发布了0 篇原创文章 · 获赞 123 · 访问量 88万+

猜你喜欢

转载自blog.csdn.net/kunkliu/article/details/104355898