1

変換を行わずに、接続されたソケットから直接uintを読み取るにはどうすればよいですか。

事実上、Dは。に相当しread(sock, &four_byte_var, 4)ます。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モジュールとモジュールはstd.socketstream新しいインターフェースに置き換えられます(まあ、それは時間がかかるかもしれません)。

于 2012-09-08T17:21:03.267 に答える