local.sin_addr.s_addr = htonl(INADDR_ANY)的意思是监听客户端的所有地址吗
1个回答
展开全部
遇到这类问题看看MSDN很快就可以解决了。
你的变量local是个结构体:
struct sockaddr_in{
short sin_family;
unsigned short sin_port;
IN_ADDR sin_addr;
char sin_zero[8];
};该结构体用于指定一个socket的一端【ip+port】
所以local.sin_addr.s_addr是ip地址。
作为服务器,你要绑定【bind】到本地的IP地址上进行监听【listen】,但是你的机器上可能有多块网卡,也就有多个IP地址,这时候你要选择绑定在哪个IP上面,如果指定为INADDR_ANY,那么系统将绑定默认的网卡【即IP地址】。
作为客户端,你要连接【connect】到远端的服务器,也是要指定远端服务器的(ip, port)对。
当然,在这种情况下,不可能将IP地址指定为INADDR_ANY,系统会疯掉的。
我的建议是找本讲网络编程的书系统学习,这样进步才快,才能学好东西。
《windows网络通信编程》《unix网络编程》之类,书的名称可能有错,但大致就是这个名字了。
any questions ?
你的变量local是个结构体:
struct sockaddr_in{
short sin_family;
unsigned short sin_port;
IN_ADDR sin_addr;
char sin_zero[8];
};该结构体用于指定一个socket的一端【ip+port】
所以local.sin_addr.s_addr是ip地址。
作为服务器,你要绑定【bind】到本地的IP地址上进行监听【listen】,但是你的机器上可能有多块网卡,也就有多个IP地址,这时候你要选择绑定在哪个IP上面,如果指定为INADDR_ANY,那么系统将绑定默认的网卡【即IP地址】。
作为客户端,你要连接【connect】到远端的服务器,也是要指定远端服务器的(ip, port)对。
当然,在这种情况下,不可能将IP地址指定为INADDR_ANY,系统会疯掉的。
我的建议是找本讲网络编程的书系统学习,这样进步才快,才能学好东西。
《windows网络通信编程》《unix网络编程》之类,书的名称可能有错,但大致就是这个名字了。
any questions ?
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询