【发布时间】:2013-02-14 03:15:56
【问题描述】:
我正在从服务器接收 UDP 数据包(确切地说:打开声音控制数据包)。我将这些数据包存储在 ByteArray 中。
我想将此 ByteArray 转换为 String,以便我可以利用接收到的数据。我尝试了很多转换,但每次我都有不可读的字符。
代码如下:
| server peerAddr |
server := SocketAccessor newUDPserverAtPort: 3333.
peerAddr := IPSocketAddress new.
buffer := ByteArray new: 1024.
[ server readWait.
server receiveFrom: peerAddr buffer: buffer.
Transcript show: (buffer asString) ; cr ; flush. ] repeat.
我也尝试了以下转换,但没有成功:
buffer asByteString.
buffer asStringEncoding:#UTF8.
buffer asStringEncoding:#UTF16.
buffer asString.
buffer asBase64String.
buffer asFourByteString
buffer withEncoding: #ASCII
这是字符串输出:
有什么帮助吗?
附加信息:接收到的数据是开放的声音控制数据,因此它具有特定的格式,这就是为什么它会这样显示,我需要解析整数、浮点数、字符串,以及特定的字节数组索引.有没有人推荐提供这些可能性的软件包?
提前致谢。
【问题讨论】:
-
如果您检查接收到的 ByteArray 和每个字节,是否有任何 ASCII 字符代码点?像 $A asInteger 的 64 等。尝试找出接收字符串的编码方式。
-
其实收到的bytearray不只包含Strings,我在问题里加了一些intel。
标签: string bytearray smalltalk osc visualworks