Boost Asio Socket:如何获取连接的IP、端口地址?

16

我有一个使用boost asio的TCP服务器。我已经接受了一个套接字连接。如何获取正在与我的服务器通信的机器的IP和端口?

另外,是否可能获取连接到我的服务器的用户所看到的IP信息?

4个回答

31

你可以像这样获取IP地址和端口:

std::string sClientIp = socket().remote_endpoint().address().to_string();
unsigned short uiClientPort = socket().remote_endpoint().port();

5

2

2

我不能对原回答发表评论,只是想提一下最高票答案存在一些问题:socket().remote_endpoint() 可能会抛出 boost::system::system_error 异常。因此,请记得处理异常,否则你的程序可能会崩溃。我花了很多小时来调试这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接