我正在使用Ocaml中的TCP/IP套接字开发协议,我感兴趣的是实现事件驱动的方法.基本上,我想创建事件处理函数,每当套接字接收新数据或关闭或打开时调用它们.
是否可以在Ocaml中使用多线程手动实现它?
谢谢,
是.制作循环并使用Unix.select等待fds上的事件.您必须将套接字设置为非阻塞模式,Unix.set_nonblock以便您的读取和写入不会阻塞,如果没有可读/写的数据,您可以返回到您的选择(因为即使select返回您可读的fds /可写的并不意味着对它们的读/写不会阻塞).