账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    为什么 这个c语言写的socket程序没有成功访问到百度?
    43
    0
    #include<stdio.h>
    #include<string.h>
    #include<winsock2.h>
    char buff[2001];
    int main()
    {
        WSADATA wsaData;
        WSAStartup(MAKEWORD(2, 0), &wsaData);
        //我也不知道干什么的 
    
        int sockfd=socket(AF_INET,SOCK_STREAM,0);//用的socket   
        struct sockaddr_in dest_addr;  //要访问的地址信息 
        int size;
        
        char s[]="GET / HTTP/1.1\r\n""Host:www.baidu.com\r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)Gecko/20050225 Firefox/1.0.1Connection: Keep-Alive\r\n";
        //http的get方法的报头 
        
        dest_addr.sin_family=AF_INET;
        dest_addr.sin_port=htons(80);
        dest_addr.sin_addr.s_addr=inet_addr("61.135.169.121");
        memset(dest_addr.sin_zero,0,8);
        //对目标地址信息进行填充, ip地址是ping出来的 
        
        connect(sockfd,(struct sockaddr*)&dest_addr,sizeof(struct sockaddr));
        //进行连接 
        
        printf("connect success");
    
        send(sockfd,s,sizeof(s),0);
    
        buff[recv(sockfd,buff,2000,0)]=0;
        printf("%s",buff);
    
        closesocket(sockfd);
    
        return 0;
    }
    
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 沐天涯 普通会员 1楼

      这个问题可能是由多种原因引起的,包括但不限于:

      1. 网络问题:如果连接到的网络不稳定或者带宽不足,可能会影响到数据的传输。

      2. 服务器问题:如果你连接的服务器没有正确运行,或者服务器上没有提供你需要的资源,那么你的请求可能无法成功。

      3. 端口问题:有些服务器可能使用特定的端口进行通信,如果在这个端口上运行了其他的程序,那么就可能会阻塞到你的程序。

      4. 请求格式问题:如果你的请求格式不正确,例如请求头、请求体等不完整,那么服务器可能无法理解你的请求,从而导致请求失败。

      5. 缓存问题:有些服务可能使用缓存来提高访问速度,如果缓存已经满了,那么请求可能会被延迟。

      解决这个问题需要你检查你的网络连接、服务器运行状态、端口设置、请求格式和缓存设置等多个方面。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部