我正在尝试通过以下链接学习libevent / libev(在本例中为libev):http://www.ibm.com/developerworks/aix/library/au-libev/

我想知道如何找出远程IP地址是什么,以便我可以构建自己的DHT。

我猜它与传入的结构有关,但我只是不知道。

这是传入变量使用的回调代码,对于其余代码,请单击上面的链接。

void buf_read_callback(struct bufferevent *incoming,
                       void *arg)
{
  struct evbuffer *evreturn;
  char *req;

  req = evbuffer_readline(incoming->input);
  if (req == NULL)
    return;

  evreturn = evbuffer_new();
  evbuffer_add_printf(evreturn,"You said %s\n",req);
  bufferevent_write_buffer(incoming,evreturn);
  evbuffer_free(evreturn);
  free(req);
}


基本上,示例代码提供了一个由libev事件驱动的“服务器”,您可以通过对服务器ip:port对进行远程登录来连接到服务器,它只会回显您说的所有内容-请注意显示“您说% s \ n“

最佳答案

我将在调用accept()时存储远程地址,然后将其与新连接关联。但是,您也可以在回调中使用getpeername()。 libev对此没有什么特别的事情,只需获取FD编号并像在C中一样进行网络编程即可。

关于c - 从此示例代码获取libev远程IP地址?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14535214/

10-09 08:59