Exemplo n.º 1
0
Variant f_stream_socket_recvfrom(CObjRef socket, int length,
                                 int flags /* = 0 */,
                                 CStrRef address /* = null_string */) {
  String host; int port;
  parse_host(address, host, port);
  Variant ret;
  Variant retval = f_socket_recvfrom(socket, ref(ret), length, flags,
                                     host, port);
  if (!same(retval, false) && retval.toInt64() >= 0) {
    return ret.toString(); // watch out, "ret", not "retval"
  }
  return false;
}
Exemplo n.º 2
0
Variant f_stream_socket_recvfrom(const Resource& socket, int length,
                                 int flags /* = 0 */,
                                 VRefParam address /* = null_string */) {
  Variant ret, host, port;
  Variant retval = f_socket_recvfrom(socket, ref(ret), length, flags,
                                     ref(host), ref(port));
  if (!same(retval, false) && retval.toInt64() >= 0) {
    Socket *sock = socket.getTyped<Socket>();
    if (sock->getType() == AF_INET6) {
      address = "[" + host.toString() + "]:" + port.toInt32();
    } else {
      address = host.toString() + ":" + port.toInt32();
    }
    return ret.toString(); // watch out, "ret", not "retval"
  }
  return false;
}