【发布时间】:2010-01-25 19:53:13
【问题描述】:
我是 Erlang 的新手,我正在转换我的一些 PHP 内容,但我无法弄清楚这一点。这是PHP中的函数:
public function raw_send($string1, $string2 = NULL, $type = SERVERDATA_EXECCOMMAND) {
$data = pack('VV', $this->get_request_id(), $type) . $string1 . chr(0) . $string2 . chr(0); // build data
$packet = pack('V', strlen($data)) . $data;
fwrite($this->fp, $packet, strlen($packet));
}
这是我的尝试:
raw_send(Sock, String1, String2, Type) ->
RequestId = random:uniform(10),
PacketData = list_to_binary([<<RequestId, Type>>, String1, 0, String2, 0]),
DataLength = byte_size(PacketData),
Packet = list_to_binary([<<DataLength>>, PacketData]),
ok = gen_tcp:send(Sock, Packet).
我试过用 crc32 比较东西,php 中的 pack("VV", 1, 3) 应该 = >,不是吗?
另外,我正在尝试做的规范:http://developer.valvesoftware.com/wiki/Source_RCON_Protocol
停下来!
谢谢
【问题讨论】:
-
你的尝试有什么问题?