如题,ping可以ping通,telnet也可以,但在程序中却connect不上别的机器,如何在程序中自动选择合适的IP呢,socket有什么可作设置的吗?谢谢!

解决方案 »

  1.   

    memset(&local,0,sizeof(struct sockaddr_in));
    local.sin_family=AF_INET;
    local.sin_addr.s_addr=INADDR_ANY;
    local.sin_port=htons(0);
    iRet=bind(sock,(sockaddr *)&local,sizeof(sockaddr));
    我试了一下这个,好像还是没法连接上,如果用local.sin_addr.s_addr=inet_addr(ip),这个ip如何取得,因为有多个ip,如何确定是哪一个呢?
      

  2.   

    这个ip如何取得,因为有多个ip,如何确定是哪一个呢?
    -------------------------------------------------------
    你是不是指这个IP地址是一个服务器上面的地址,而服务器上
    又有好几个网卡?如是这样,在服务器中,当创建一个服务器
    监听句柄时,邦定IP地址为0就可以了,这样,他就会自动
    监听你机器上所有的IP地址上的相同端口。
      

  3.   

    你是不是指这个IP地址是一个服务器上面的地址,而服务器上
    又有好几个网卡?如是这样,在服务器中,当创建一个服务器
    监听句柄时,邦定IP地址为0就可以了,这样,他就会自动
    监听你机器上所有的IP地址上的相同端口。
    ------------------------------------------------------------
    不是的,我在服务器上针对某一个端口port有一个监听服务,客户端一个网卡绑定了多个IP,在客户端可以telnet serverip port成功,但用程序connect不成功,我的意思是客户端程序如何设置使得其和telnet一样自动选择正确的本机IP。