通过SOCKET句柄获取连接客户端的IP和端口的问题!

用socket的getpeername获得客户端的ip和端口有点问题,请高手赐教!十分感谢

我的代码:wParam就是连接客户端的SOCKET句柄

我的客户端的真实IP地址和端口:

但我的代码获得的客户端IP和端口怎么不对呢?? IP为什么会是204.204.204.024

端口号也不对,应该是21711,怎么会是52428呢?
最新回答
红眼兔兔

2024-11-26 08:06:29

暂时还没看出问题来,可以测试一下
1、判断getpeername的返回值,若有错误,把错误代码打印出来;
2、wsprintf函数是针对UNICODE字符的吧?为什么不用sprintf?
3、你的备注里说因为网络传送是低位先传送,正确的应该是网络字节序和主机字节序的问题,在网络上使用网络字节序,是高位先存。主机字节序其实又包括大端和小端,而htons, htonl, inet_addr, inet_ntoa, inet_ntol这些函数就是用于实现主机字节序和网络字节序的转换的,这些函数内部会根据大端还是小端来决定如何将数值转换成网络字节序。