OCaml 非阻塞客户端套接字
OCaml non-blocking client socket
有没有办法以非阻塞方式使用客户端套接字。
例如,如果我为客户端创建一个连接到服务器的套接字,并且我在该套接字上执行递归 recv
,最后一次调用 Unix.recv
将在没有数据时阻塞发送,如果连接没有被服务器关闭。
在 C 中,您可以为两者指定标志:
socket()
并使用 SOCK_NONBLOCK
标志与套接字类型
- 或
receiv()
带有 MSG_DONTWAIT
标志。
我看过这里 :
- http://caml.inria.fr/pub/docs/manual-ocaml/libref/Unix.html#TYPEsocket_bool_option
- http://caml.inria.fr/pub/docs/manual-ocaml/libref/Unix.html#TYPEsocket_type
- http://caml.inria.fr/pub/docs/manual-ocaml/libref/Unix.html#TYPEmsg_flag
- https://ocaml.github.io/ocamlunix/ocamlunix.html#sec119
但是我找不到这方面的任何信息。
有没有办法以非阻塞方式使用客户端套接字。
例如,如果我为客户端创建一个连接到服务器的套接字,并且我在该套接字上执行递归 recv
,最后一次调用 Unix.recv
将在没有数据时阻塞发送,如果连接没有被服务器关闭。
在 C 中,您可以为两者指定标志:
socket()
并使用SOCK_NONBLOCK
标志与套接字类型- 或
receiv()
带有MSG_DONTWAIT
标志。
我看过这里 :
- http://caml.inria.fr/pub/docs/manual-ocaml/libref/Unix.html#TYPEsocket_bool_option
- http://caml.inria.fr/pub/docs/manual-ocaml/libref/Unix.html#TYPEsocket_type
- http://caml.inria.fr/pub/docs/manual-ocaml/libref/Unix.html#TYPEmsg_flag
- https://ocaml.github.io/ocamlunix/ocamlunix.html#sec119
但是我找不到这方面的任何信息。