コード例 #1
0
ファイル: ext_stream.cpp プロジェクト: KWMalik/hiphop-php
Variant f_stream_socket_client(CStrRef remote_socket,
                               VRefParam errnum /* = null */,
                               VRefParam errstr /* = null */,
                               double timeout /* = 0.0 */,
                               int flags /* = 0 */,
                               CObjRef context /* = null_object */) {
  String protocol, host; int port;
  parse_socket(remote_socket, protocol, host, port);
  return f_fsockopen(protocol + "://" + host, port, errnum, errstr, timeout);
}
コード例 #2
0
bool TestExtNetwork::test_fsockopen() {
  {
    Variant f = f_fsockopen("facebook.com", 80);
    VERIFY(!same(f, false));
    f_fputs(f, "GET / HTTP/1.0\n\n");
    VERIFY(!f_fread(f, 15).toString().empty());
  }
  {
    Variant f = f_fsockopen("ssl://www.facebook.com", 443);
    VERIFY(!same(f, false));
    f_fwrite(f,
             "GET / HTTP/1.1\r\n"
             "Host: www.facebook.com\r\n"
             "Connection: Close\r\n"
             "\r\n");
    StringBuffer response;
    while (!same(f_feof(f), true)) {
      Variant line = f_fgets(f, 128);
      response.append(line.toString());
    }
    VERIFY(!response.detach().empty());
  }
  return Count(true);
}
コード例 #3
0
bool TestExtNetwork::test_socket_set_timeout() {
  Variant f = f_fsockopen("facebook.com", 80);
  f_socket_set_timeout(f, 0);
  return Count(true);
}
コード例 #4
0
bool TestExtNetwork::test_socket_set_blocking() {
  Variant f = f_fsockopen("facebook.com", 80);
  VERIFY(!same(f, false));
  f_socket_set_blocking(f, 0);
  return Count(true);
}