socketmodule.java

来自「RESIN 3.2 最新源码」· Java 代码 · 共 549 行 · 第 1/2 页

JAVA
549
字号
  public static boolean socket_connect(Env env, @NotNull SocketInputOutput socket,                                       StringValue address, @Optional int port)  {    try {      InetAddress []addresses = InetAddress.getAllByName(address.toString());      if (addresses == null || addresses.length < 1) {        //XXX: socket.setError();        return false;      }      InetSocketAddress socketAddress =         new InetSocketAddress(addresses[0], port);      socket.connect(socketAddress);      return true;    } catch (IOException e) {      return false;    }  }  public static Value socket_get_status(Env env, BinaryStream stream)  {    return StreamModule.stream_get_meta_data(env, stream);  }  public static Value socket_read(Env env, @NotNull SocketInputOutput socket,                                  int length, @Optional int type)  {    TempBuffer tempBuffer = null;    TempCharBuffer tempCharBuffer = null;    try {      if (type == PHP_NORMAL_READ) {        return socket.readLine(length);      } else {        tempBuffer = TempBuffer.allocate();        if (length > tempBuffer.getCapacity())          length = tempBuffer.getCapacity();        byte []buffer = tempBuffer.getBuffer();        length = socket.read(buffer, 0, length);        if (length > 0) {          StringValue sb = env.createBinaryBuilder(buffer, 0, length);          return sb;        } else          return BooleanValue.FALSE;      }    } catch (IOException e) {      env.warning(e);      return BooleanValue.FALSE;    } finally {      if (tempCharBuffer != null)        TempCharBuffer.free(tempCharBuffer);      if (tempBuffer != null)        TempBuffer.free(tempBuffer);    }  }  public static boolean socket_set_timeout(Env env,                                           @NotNull Value stream,                                           int seconds,                                           @Optional("-1") int milliseconds)  {    return StreamModule.stream_set_timeout(env, stream, seconds, milliseconds);  }  public static Value socket_write(Env env,                                   @NotNull SocketInputOutput socket,                                   @NotNull InputStream is,                                    @Optional("-1") int length)  {    if (is == null)      return BooleanValue.FALSE;    // php/4800    if (length < 0)      length = Integer.MAX_VALUE;    int result = socket.write(is, length);    if (result < 0)      return BooleanValue.FALSE;    else      return LongValue.create(result);  }  /**   * Closes a socket.   *   * @param how 0 = read, 1 = write, 2 = both   */  public boolean socket_shutdown(Env env,				 @NotNull SocketInputOutput file,				 int how)  {    if (file == null)      return false;    switch (how) {    case 0:      file.closeRead();      return true;          case 1:      file.closeWrite();      return true;          case 2:      file.close();      return true;          default:      return false;    }  }  static {    _constMap.put("AF_UNIX", LongValue.create(AF_UNIX));    _constMap.put("AF_INET", LongValue.create(AF_INET));    _constMap.put("AF_INET6", LongValue.create(AF_INET6));    _constMap.put("SOCK_STREAM", LongValue.create(SOCK_STREAM));    _constMap.put("SOCK_DGRAM", LongValue.create(SOCK_DGRAM));    _constMap.put("SOCK_RAW", LongValue.create(SOCK_RAW));    _constMap.put("SOCK_SEQPACKET", LongValue.create(SOCK_SEQPACKET));    _constMap.put("SOCK_RDM", LongValue.create(SOCK_RDM));    _constMap.put("MSG_OOB", LongValue.create(MSG_OOB));    _constMap.put("MSG_WAITALL", LongValue.create(MSG_WAITALL));    _constMap.put("MSG_PEEK", LongValue.create(MSG_PEEK));    _constMap.put("MSG_DONTROUTE", LongValue.create(MSG_DONTROUTE));    _constMap.put("SO_DEBUG", LongValue.create(SO_DEBUG));    _constMap.put("SO_REUSEADDR", LongValue.create(SO_REUSEADDR));    _constMap.put("SO_KEEPALIVE", LongValue.create(SO_KEEPALIVE));    _constMap.put("SO_DONTROUTE", LongValue.create(SO_DONTROUTE));    _constMap.put("SO_LINGER", LongValue.create(SO_LINGER));    _constMap.put("SO_BROADCAST", LongValue.create(SO_BROADCAST));    _constMap.put("SO_OOBINLINE", LongValue.create(SO_OOBINLINE));    _constMap.put("SO_SNDBUF", LongValue.create(SO_SNDBUF));    _constMap.put("SO_RCVBUF", LongValue.create(SO_RCVBUF));    _constMap.put("SO_SNDLOWAT", LongValue.create(SO_SNDLOWAT));    _constMap.put("SO_RCVLOWAT", LongValue.create(SO_RCVLOWAT));    _constMap.put("SO_SNDTIMEO", LongValue.create(SO_SNDTIMEO));    _constMap.put("SO_RCVTIMEO", LongValue.create(SO_RCVTIMEO));    _constMap.put("SO_TYPE", LongValue.create(SO_TYPE));    _constMap.put("SO_ERROR", LongValue.create(SO_ERROR));    _constMap.put("SOL_SOCKET", LongValue.create(SOL_SOCKET));    _constMap.put("SOMAXCONN", LongValue.create(SOMAXCONN));    _constMap.put("PHP_NORMAL_READ", LongValue.create(PHP_NORMAL_READ));    _constMap.put("PHP_BINARY_READ", LongValue.create(PHP_BINARY_READ));        _constMap.put("SOCKET_EPERM", LongValue.create(SOCKET_EPERM));    _constMap.put("SOCKET_ENOENT", LongValue.create(SOCKET_ENOENT));    _constMap.put("SOCKET_EINTR", LongValue.create(SOCKET_EINTR));    _constMap.put("SOCKET_EIO", LongValue.create(SOCKET_EIO));    _constMap.put("SOCKET_ENXIO", LongValue.create(SOCKET_ENXIO));    _constMap.put("SOCKET_E2BIG", LongValue.create(SOCKET_E2BIG));    _constMap.put("SOCKET_EBADF", LongValue.create(SOCKET_EBADF));    _constMap.put("SOCKET_EAGAIN", LongValue.create(SOCKET_EAGAIN));    _constMap.put("SOCKET_ENOMEM", LongValue.create(SOCKET_ENOMEM));    _constMap.put("SOCKET_EACCES", LongValue.create(SOCKET_EACCES));    _constMap.put("SOCKET_EFAULT", LongValue.create(SOCKET_EFAULT));    _constMap.put("SOCKET_ENOTBLK", LongValue.create(SOCKET_ENOTBLK));    _constMap.put("SOCKET_EBUSY", LongValue.create(SOCKET_EBUSY));    _constMap.put("SOCKET_EEXIST", LongValue.create(SOCKET_EEXIST));    _constMap.put("SOCKET_EXDEV", LongValue.create(SOCKET_EXDEV));    _constMap.put("SOCKET_ENODEV", LongValue.create(SOCKET_ENODEV));    _constMap.put("SOCKET_ENOTDIR", LongValue.create(SOCKET_ENOTDIR));    _constMap.put("SOCKET_EISDIR", LongValue.create(SOCKET_EISDIR));    _constMap.put("SOCKET_EINVAL", LongValue.create(SOCKET_EINVAL));    _constMap.put("SOCKET_ENFILE", LongValue.create(SOCKET_ENFILE));    _constMap.put("SOCKET_EMFILE", LongValue.create(SOCKET_EMFILE));    _constMap.put("SOCKET_ENOTTY", LongValue.create(SOCKET_ENOTTY));    _constMap.put("SOCKET_ENOSPC", LongValue.create(SOCKET_ENOSPC));    _constMap.put("SOCKET_ESPIPE", LongValue.create(SOCKET_ESPIPE));    _constMap.put("SOCKET_EROFS", LongValue.create(SOCKET_EROFS));    _constMap.put("SOCKET_EMLINK", LongValue.create(SOCKET_EMLINK));    _constMap.put("SOCKET_EPIPE", LongValue.create(SOCKET_EPIPE));    _constMap.put("SOCKET_ENAMETOOLONG", LongValue.create(SOCKET_ENAMETOOLONG));    _constMap.put("SOCKET_ENOLCK", LongValue.create(SOCKET_ENOLCK));    _constMap.put("SOCKET_ENOSYS", LongValue.create(SOCKET_ENOSYS));    _constMap.put("SOCKET_ENOTEMPTY", LongValue.create(SOCKET_ENOTEMPTY));    _constMap.put("SOCKET_ELOOP", LongValue.create(SOCKET_ELOOP));    _constMap.put("SOCKET_EWOULDBLOCK", LongValue.create(SOCKET_EWOULDBLOCK));    _constMap.put("SOCKET_ENOMSG", LongValue.create(SOCKET_ENOMSG));    _constMap.put("SOCKET_EIDRM", LongValue.create(SOCKET_EIDRM));    _constMap.put("SOCKET_ECHRNG", LongValue.create(SOCKET_ECHRNG));    _constMap.put("SOCKET_EL2NSYNC", LongValue.create(SOCKET_EL2NSYNC));    _constMap.put("SOCKET_EL3HLT", LongValue.create(SOCKET_EL3HLT));    _constMap.put("SOCKET_EL3RST", LongValue.create(SOCKET_EL3RST));    _constMap.put("SOCKET_ELNRNG", LongValue.create(SOCKET_ELNRNG));    _constMap.put("SOCKET_EUNATCH", LongValue.create(SOCKET_EUNATCH));    _constMap.put("SOCKET_ENOCSI", LongValue.create(SOCKET_ENOCSI));    _constMap.put("SOCKET_EL2HLT", LongValue.create(SOCKET_EL2HLT));    _constMap.put("SOCKET_EBADE", LongValue.create(SOCKET_EBADE));    _constMap.put("SOCKET_EBADR", LongValue.create(SOCKET_EBADR));    _constMap.put("SOCKET_EXFULL", LongValue.create(SOCKET_EXFULL));    _constMap.put("SOCKET_ENOANO", LongValue.create(SOCKET_ENOANO));    _constMap.put("SOCKET_EBADRQC", LongValue.create(SOCKET_EBADRQC));    _constMap.put("SOCKET_EBADSLT", LongValue.create(SOCKET_EBADSLT));    _constMap.put("SOCKET_ENOSTR", LongValue.create(SOCKET_ENOSTR));    _constMap.put("SOCKET_ENODATA", LongValue.create(SOCKET_ENODATA));    _constMap.put("SOCKET_ETIME", LongValue.create(SOCKET_ETIME));    _constMap.put("SOCKET_ENOSR", LongValue.create(SOCKET_ENOSR));    _constMap.put("SOCKET_ENONET", LongValue.create(SOCKET_ENONET));    _constMap.put("SOCKET_EREMOTE", LongValue.create(SOCKET_EREMOTE));    _constMap.put("SOCKET_ENOLINK", LongValue.create(SOCKET_ENOLINK));    _constMap.put("SOCKET_EADV", LongValue.create(SOCKET_EADV));    _constMap.put("SOCKET_ESRMNT", LongValue.create(SOCKET_ESRMNT));    _constMap.put("SOCKET_ECOMM", LongValue.create(SOCKET_ECOMM));    _constMap.put("SOCKET_EPROTO", LongValue.create(SOCKET_EPROTO));    _constMap.put("SOCKET_EMULTIHOP", LongValue.create(SOCKET_EMULTIHOP));    _constMap.put("SOCKET_EBADMSG", LongValue.create(SOCKET_EBADMSG));    _constMap.put("SOCKET_ENOTUNIQ", LongValue.create(SOCKET_ENOTUNIQ));    _constMap.put("SOCKET_EBADFD", LongValue.create(SOCKET_EBADFD));    _constMap.put("SOCKET_EREMCHG", LongValue.create(SOCKET_EREMCHG));    _constMap.put("SOCKET_ERESTART", LongValue.create(SOCKET_ERESTART));    _constMap.put("SOCKET_ESTRPIPE", LongValue.create(SOCKET_ESTRPIPE));    _constMap.put("SOCKET_EUSERS", LongValue.create(SOCKET_EUSERS));    _constMap.put("SOCKET_ENOTSOCK", LongValue.create(SOCKET_ENOTSOCK));    _constMap.put("SOCKET_EDESTADDRREQ", LongValue.create(SOCKET_EDESTADDRREQ));    _constMap.put("SOCKET_EMSGSIZE", LongValue.create(SOCKET_EMSGSIZE));    _constMap.put("SOCKET_EPROTOTYPE", LongValue.create(SOCKET_EPROTOTYPE));    _constMap.put("SOCKET_ENOPROTOOPT", LongValue.create(SOCKET_ENOPROTOOPT));    _constMap.put("SOCKET_EPROTONOSUPPORT",         LongValue.create(SOCKET_EPROTONOSUPPORT));    _constMap.put("SOCKET_ESOCKTNOSUPPORT",         LongValue.create(SOCKET_ESOCKTNOSUPPORT));    _constMap.put("SOCKET_EOPNOTSUPP", LongValue.create(SOCKET_EOPNOTSUPP));    _constMap.put("SOCKET_EPFNOSUPPORT", LongValue.create(SOCKET_EPFNOSUPPORT));    _constMap.put("SOCKET_EAFNOSUPPORT", LongValue.create(SOCKET_EAFNOSUPPORT));    _constMap.put("SOCKET_EADDRINUSE", LongValue.create(SOCKET_EADDRINUSE));    _constMap.put("SOCKET_EADDRNOTAVAIL",         LongValue.create(SOCKET_EADDRNOTAVAIL));    _constMap.put("SOCKET_ENETDOWN", LongValue.create(SOCKET_ENETDOWN));    _constMap.put("SOCKET_ENETUNREACH", LongValue.create(SOCKET_ENETUNREACH));    _constMap.put("SOCKET_ENETRESET", LongValue.create(SOCKET_ENETRESET));    _constMap.put("SOCKET_ECONNABORTED", LongValue.create(SOCKET_ECONNABORTED));    _constMap.put("SOCKET_ECONNRESET", LongValue.create(SOCKET_ECONNRESET));    _constMap.put("SOCKET_ENOBUFS", LongValue.create(SOCKET_ENOBUFS));    _constMap.put("SOCKET_EISCONN", LongValue.create(SOCKET_EISCONN));    _constMap.put("SOCKET_ENOTCONN", LongValue.create(SOCKET_ENOTCONN));    _constMap.put("SOCKET_ESHUTDOWN", LongValue.create(SOCKET_ESHUTDOWN));    _constMap.put("SOCKET_ETOOMANYREFS", LongValue.create(SOCKET_ETOOMANYREFS));    _constMap.put("SOCKET_ETIMEDOUT", LongValue.create(SOCKET_ETIMEDOUT));    _constMap.put("SOCKET_ECONNREFUSED", LongValue.create(SOCKET_ECONNREFUSED));    _constMap.put("SOCKET_EHOSTDOWN", LongValue.create(SOCKET_EHOSTDOWN));    _constMap.put("SOCKET_EHOSTUNREACH", LongValue.create(SOCKET_EHOSTUNREACH));    _constMap.put("SOCKET_EALREADY", LongValue.create(SOCKET_EALREADY));    _constMap.put("SOCKET_EINPROGRESS", LongValue.create(SOCKET_EINPROGRESS));    _constMap.put("SOCKET_EISNAM", LongValue.create(SOCKET_EISNAM));    _constMap.put("SOCKET_EREMOTEIO", LongValue.create(SOCKET_EREMOTEIO));    _constMap.put("SOCKET_EDQUOT", LongValue.create(SOCKET_EDQUOT));    _constMap.put("SOCKET_ENOMEDIUM", LongValue.create(SOCKET_ENOMEDIUM));    _constMap.put("SOCKET_EMEDIUMTYPE", LongValue.create(SOCKET_EMEDIUMTYPE));    _constMap.put("SOL_TCP", LongValue.create(SOL_TCP));    _constMap.put("SOL_UDP", LongValue.create(SOL_UDP));  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?