Windows网络编程(一)[1]

[入库:2005年8月19日] [更新:2007年3月24日]

本文简介:选择自 kendiv 的 blog

windows网络编程(一)

 

1. 关于bind

  inaddr_any 的具体含义是,绑定到0.0.0.0。此时,对所有的地址都将是有效的,如果系统考虑冗余,采用多个网卡的话,那么使用此种bind,将在所有网卡上进行绑定。在这种情况下,你可以收到发送到所有有效地址上数据包。

例如:

sockaddr_in local;

local.sin_addr.s_addr = htonl(inaddr_any);

 

另外一种方式如下:

sockaddr_in local;

hostent* thishost = gethostbyname("");

char* ip = inet_ntoa(*(struct in_addr *)*thishost->h_addr_list);

local.sin_addr.s_addr = inet_addr(ip); 

 在这种方式下,将在系统中当前第一个可用地址上进行绑定。在多网卡的环境下,可能会出问题。

 

最常见的方式:

const char localip[] = "192.168.0.100";

sockaddr_in local;

local.sin_addr.s_addr = inet_addr(localip);

bind(socket, (lpsockaddr)&local, sizeof(sockaddr_in)

 

bind的安全问题:

本文关键:Windows网络编程(一)
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top