如何直接从连接的套接字读取uint而无需进行任何转换。
实际上,D等于read(sock, &four_byte_var, 4)
的是什么。我似乎无法将uint
转换为D标准库socket.receive(void[])
将接受的任何内容。
答案 0 :(得分:3)
您需要传递一个围绕变量的切片:
uint n;
socket.receive((&n)[0..1]);
请注意,此方法对字节序敏感。
答案 1 :(得分:1)
使用std.socketstream
非常简单:
auto stream = new SocketStream(socket);
uint foo;
stream.read(foo);
注意: std.stream
和std.socketstream
模块将被新界面取代(好吧,这可能需要一段时间)。