1

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

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

4

2 回答 2

3

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

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

请注意,这种方法是字节序敏感的。

于 2012-09-08T17:25:54.790 回答
1

这很容易std.socketstream

auto stream = new SocketStream(socket);

uint foo;
stream.read(foo);

注意:std.stream and模块将std.socketstream被一个新接口替换(嗯,这可能需要一段时间)。

于 2012-09-08T17:21:03.267 回答