unity中UDP接收数据如何还原问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity中UDP接收数据如何还原问题?相关的知识,希望对你有一定的参考价值。

请问在unity中使用UDP接收到的数据是string类型的,怎么样才能将接收到的数据转换为原始的float类型的?比如我接收的是数据20,如何还原为20来参与计算?谢谢

参考技术A 封装的数据包应该有对应的数据格式,这样你接收的时候才能对应的解析。
比如key,value键值对或者直接JSON取到数据包后按约定格式反序列化成对应对象数据追问

接收到的是UTF8编码的string,使用强制格式转换的函数去处理时总是出错,有可能需要自己编写格式转换程序,但是我又不懂

追答

你需要先了解数据包的结构,一般数据包里就是包头+包体,由于你这里用的UDP那么每个包都是一个整包,不用考虑分包问题。
包头存一些数据源端口、数据长度、数据校验码之类的东西,而真正对业务有用的其实是包体部分。
你要做的就是先把字符串中包体部分取出来,然后按之前说的按对应的格式取解析包体

发送和接收UDP数据[重复]

【中文标题】发送和接收UDP数据[重复]【英文标题】:Send and receive UDP data [duplicate] 【发布时间】:2012-05-09 03:08:25 【问题描述】:

可能重复:Sending UDP Packet in C#

我有一些十六进制格式的数据,我想发送到 UDP 服务器,然后从服务器返回包含一些数据的响应。我将如何在 C# 中执行此操作?

我可能会补充一点,我没有对服务器的本地访问权限,我只是想看看通过将这些特定数据发送给它会得到什么响应。

【问题讨论】:

看http://***.com/a/2637791/884410 我曾尝试使用 UdpClient.Send 方法将数据发送到 UDP 服务器,我猜这可行,但我也希望能够从服务器获得响应。跨度> 【参考方案1】:

1- A Chat Application Using Asynchronous UDP sockets

2-Send UDP packet in C#

3-Testing TCP and UDP socket servers using C# and .NET

4-Receive and send data

5-UDP Send and Receive using threads in VB.NET

6-A UDP based Reliable Data Transfer Library

7-msdn microsoft

【讨论】:

我之前尝试过您的第二个链接,虽然它似乎应该做我想要的,但我没有得到任何数据。这是否意味着服务器没有响应任何内容? 与我们分享你所做的,写一些代码让我们看看有什么问题

以上是关于unity中UDP接收数据如何还原问题?的主要内容,如果未能解决你的问题,请参考以下文章

如何将labview tcp/ip接收到的平化字符串数据还原

统一时C#脚本上的UDP服务器启动但无法接收数据包

如何接收组播 UDP?

如何在 Winsock 中查找当前使用的 UDP 接收缓冲区大小

如何从任何 ip 和任何端口接收 UDP 数据包?

发送和接收UDP数据[重复]