Ococket中的套接字onread,onready,onclose事件处理函数

时间:2013-05-24 07:33:15

标签: ocaml

我正在使用Ocaml中的T​​CP / IP套接字开发协议,我感兴趣的是实现事件驱动方法。基本上,我想创建事件处理函数,每当套接字接收新数据或关闭或打开时调用它们。

是否可以在Ocaml中使用多线程手动实现它?

谢谢,

1 个答案:

答案 0 :(得分:6)

是。创建一个循环并使用Unix.select等待fds上的事件。您必须使用Unix.set_nonblock将套接字设置为非阻塞模式,这样您的读写操作就不会阻塞,如果没有可读/写的数据,您可以返回到您的选择(因为即使{{ 1}}返回你可读/可写的fds,这并不意味着它们的读/写不会阻塞。)