当前位置:编程学习 > 网站相关 >>

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
补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,