Linux中套接字的回调

hgb9j2n6  于 2023-08-03  发布在  Linux
关注(0)|答案(1)|浏览(87)

Linux中有没有办法将回调函数与套接字关联
例如,当函数

connect(sock, (struct sockaddr *)peeraddr, sizeof(*peeraddr))

字符串
已经连接了客户端和服务器,有没有办法将函数“afterRecv“与名称为sock的套接字关联起来,这样在函数recvsock读取一些数据后,afterRecv就会被调用?
sock是阻塞类型。这是由于在OpenSSL的握手期间,sock上有许多内部send/recv调用。
如果我修改OpenSSL,那么修改每个recv都很麻烦。所以我想知道,我是否可以添加一个回调。
流量应为:

  1. connect到插座
  2. recv函数
    1.当recv读取数据时,afterRecv将作为recv上的回调调用
o75abkj4

o75abkj41#

一些事件库实现了这样的回调钩子:

以及所有图形或HTTP服务器库(例如Gtk/Glib,Qt,LibOnion,...)提供(或使用)这样的事件库(围绕多路复用系统调用,如poll(2)等)。
Glib(来自GTK)和QtCore(来自Qt)都是无需任何GUI即可使用的事件库
关于C10K problem

相关问题