GetPeerName获取连入的客户端IP 端口

本文介绍了CAsyncSocket::GetPeerName()函数在获取连入客户端IP和端口时的使用方法,包括两个重载函数的用法,强调了lpSockAddrLen参数的重要性,指出其必须作为输入输出参数正确设置。同时提醒开发者注意端口的网络序到本机序的转换,以及在使用指针时的内存管理,特别是在客户端连接本机时可能返回的情况。
摘要由CSDN通过智能技术生成

CAsyncSocket::GetPeerName()有两个重载:

BOOL GetPeerName( CString& rPeerAddress, UINT& rPeerPort );
BOOL GetPeerName( SOCKADDR* lpSockAddr, int* lpSockAddrLen );

当函数正常执行时,返回非0值;如果返回0,可以通过调用GetLastError() 函数取得错误码;


BOOL GetPeerName( SOCKADDR* lpSockAddr, int* lpSockAddrLen );

	SOCKADDR_IN* lpSockAddrIn = new SOCKADDR_IN;
	int nPeerLen =sizeof(SOCKADDR_IN);//注1
	if(client.GetPeerName((SOCKADDR*)lpSockAddrIn,&nPeerLen)){//client为CSocket类实例
		TRACE("GetPeerName Success:%s:%d",
		inet_ntoa(lpSockAddrIn->sin_addr),ntohs(lpSockAddrIn->sin_port));//注2
	}else{
		TRACE("GetPeerName ErrorCode:%d\n",GetLastError());
	}
	delete lpSockAddrIn;

BOOL GetPeerName( CString& rPeerAddress, UINT& rPeerPort );


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值