请问TCP连接中客户端如何得知自己ip?
客户机网卡配上了多个ip,此时调用connect与服务器连接.建立连接后怎样才能知道是本地哪个ip与服务器建立了连接? 问题点数:20、回复次数:2Top
1 楼striking(庸人自扰)回复于 2006-02-15 11:51:11 得分 20
连接后获取本地ip,,
sockaddr_in Addr;
int iLen = sizeof( Addr );
//m_hSocket 为连接建立后的socket
if( getsockname( m_hSocket, (sockaddr*)&Addr,&iLen) ==SOCKET_ERROR)
{
return FALSE;
}
char szIp[20];
strcpy( szIp, inet_ntoa( Addr.sin_addr) );
Top
2 楼xx_jj()回复于 2006-02-15 15:02:57 得分 0
int GetIpAddress(const CString &sHostName, CString &sIpAddress)//获得本地IP
{
//struct hostent FAR * lpHostEnt=gethostbyname(sHostName);
//if(lpHostEnt==NULL)
//{
// //产生错误
// sIpAddress=_T("");
// return GetLastError();
//}
////获取IP
//LPSTR lpAddr=lpHostEnt->h_addr_list[0];
//if(lpAddr)
//{
// struct in_addr inAddr;
// memmove(&inAddr,lpAddr,4);
// //转换为标准格式
// sIpAddress=inet_ntoa(inAddr);
// if(sIpAddress.IsEmpty())
// sIpAddress=_T("没有取得");
//}
return 0;
}
int GetLocalHostName(CString &sHostName) //获得本地计算机名称
{
char szHostName[256];
int nRetCode;
nRetCode=gethostname(szHostName,sizeof(szHostName));
if(nRetCode!=0)
{
//产生错误
sHostName=_T("没有取得");
return GetLastError();
}
sHostName=szHostName;
return 0;
}Top
相关问题
- ==客户端之间如何通过TCP/IP进行通讯?==
- 在主机端如何及时准确的得知客户端已经断开连接(TCP)?
- socket编程,在服务器端如何得知当前连接的客户端IP
- SQLServer客户端默认协议NanePipe如何在程序中改为TCP/IP?
- 怎样得知客户端的访问
- winsock控件用tcp/ip协议时,客户端可以指定使用那个ip嘛?用bind方法不行。
- 问一下:大家开发网络客户端都使用什么TCP/IP控件?(WinINet/FastNet/Indy...)
- 在线解答:TCP服务端什么知道已连接的客户端的ip和端口?
- 如何用程序实现SQL客户端网络连接的配置?如采用TCP/IP or 命名管道
- ODBC连接sqlServer 选客户端协议有时Tcp/ip 通,name pipe不通,有时反之,为什么?




