日期:2014-05-16  浏览次数:20725 次

linux socket 运行错误
下面是我socket的服务器和客户端的程序,编译通过了,在执行服务器后返回了server   socket   name,然后运行客户端时出现错误:client   connet:   no   route   to   host  
我查了connect的错误类型,说是ICMP错误:不可路由(soft   error)(目的地不可达)
我是在一台机器上即作服务器又做客户端       这个问题该如何解决呢。谢谢!!


///////server
#include       <stdio.h>      
    #include       <string.h>      
    #include       <errno.h>      
    #include       <sys/types.h>      
    #include       <sys/socket.h>      
    #include       <netinet/in.h>      
    #include       <arpa/inet.h>      
    #include       <sys/select.h>      
       
    #define       MAX_BUF_SIZE   (1024)      
    static       char       buf[MAX_BUF_SIZE];      
       
    int       display_address(const       char       *msg,       struct       sockaddr_in*       p_sin)      
    {      
    if(p_sin-> sin_family       !=       AF_INET)          
    {                          
    fprintf(stderr,       "Not       an       Internet       socket.\n ");                          
    return       -1;      
    }      
    fprintf(stdout,       "%s       ==>       address       is:       %s       :       %d\n ",       msg,       inet_ntoa(p_sin-> sin_addr),       ntohs(p_sin-> sin_port));      
            return       0;      
    }      
       
    int       main()      
    {      
    int       sock,       serv;      
    struct       sockaddr_in       sin;      
    int       size;      
    fd_set       set;      
       
    FD_ZERO(&set);      
       
    serv       =       socket(AF_INET,       SOCK_STREAM,       0);      
    if       (serv       ==       -1)