我正在尝试通过以下链接学习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/