D - 从套接字读取4字节大小

时间:2012-09-08 17:18:09

标签: d

如何直接从连接的套接字读取uint而无需进行任何转换。

实际上,D等于read(sock, &four_byte_var, 4)的是什么。我似乎无法将uint转换为D标准库socket.receive(void[])将接受的任何内容。

2 个答案:

答案 0 :(得分:3)

您需要传递一个围绕变量的切片:

uint n;
socket.receive((&n)[0..1]);

请注意,此方法对字节序敏感。

答案 1 :(得分:1)

使用std.socketstream非常简单:

auto stream = new SocketStream(socket);

uint foo;
stream.read(foo);

注意: std.streamstd.socketstream模块将被新界面取代(好吧,这可能需要一段时间)。