您的位置:首页 > Web前端

Feescale K60开发笔记14: 再议UDP数据传输

2017-04-16 01:17 267 查看
    这篇日志会比较深入的理解在MQX中使用UDP进行数据传输的方法。

    先看一下UDP加载函数:函数首先建立套接字,然后指定本地IP地址和端口号,远程IP地址和端口号,以及广播地址和端口号,接着指定套接字的选项为无等待,最后绑定本地IP。


 


    下面是UDP发送数据函数:



    下面是UDP接收数据函数:数据发送的源地址会自动存入remote_sin中,所以在发送函数中调用remote_sin就可以给源地址回复数据。



    以下是函数的调用例程:首先给udp_socket_ptr分配地址控件,然后指定本地端口号是929,远程端口号是929,远程IP地址是0.0.0.0用于记录远程IP地址,给远程IP地址回复数据。函数调用成功后,会返回0,否则可以根据错误提示,查找原因。



    接下来用UDP_ReceiveData函数接收数据,用UDP_SendData函数发送数据,但是,会发现上面看似很正常但是,远程主机接不到回复数据,问题在这里,看下面函数,使用UDP_ReceiveData接收数据后,remote_sin的IP地址可以更改为远程IP,但是端口号是随机的,所以希望将数据再发回远程主机,必须重新指定端口号。


 
    一切就这么简单,但是解决这个问题花费了很长时间,把日志写出来,希望后面看到的朋友能够少走一下弯路。

原创性文章,转载请注明出处 http://user.qzone.qq.com/2756567163。 
CSDN:http://blog.csdn.net/qingwufeiyang12346
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息