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); }
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); }
bool TestExtNetwork::test_socket_set_timeout() { Variant f = f_fsockopen("facebook.com", 80); f_socket_set_timeout(f, 0); return Count(true); }
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); }