windows下通过socket的bind来绑定本机多个ip地址中的指定一个ip地址
1.有些机器特别是服务器有多个ip,如果默认使用socket编程的话,使用connect连接的时候,系统会自动选择一个默认ip(一般为第一个),有时候我们要选择某个特定的ip。2.通过在调用sockt函数与connect函数之间,插入bind函数来实现指定客户端ip地址
3.实现代码:
if(this->m_bBandIP)
{
struct sockaddr_in local_addr;
local_addr.sin_family = AF_INET;
local_addr.sin_port = htons(0);
local_addr.sin_addr.S_un.S_addr = inet_addr(this->m_strIP.GetBuffer(0)); ///这儿是指定的ip字符
memset(local_addr.sin_zero,0,8);
if(-1 == bind(sock, (struct sockaddr *)&local_addr, sizeof(struct sockaddr_in)))
{
AfxMessageBox("绑定ip失败");
return -1;
}
}
作者http://hi.baidu.com/it_security/blog/item/bab40628e25bace198250a1e.html
补充:综合编程 , 其他综合 ,