首页
社区
课程
招聘
[求助]请教一下,关于win下网络编程,一个编译错误
发表于: 2017-5-6 14:37 2715

[求助]请教一下,关于win下网络编程,一个编译错误

2017-5-6 14:37
2715

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")
int geturl(char *url)
{
    /****************解析URL,解析资源名、主机名********************/ 
    const char *parseptr1;
    const char *parseptr2;
    char host[BUFSIZ];
    char resource[BUFSIZ];
    int len, i;
    
    parseptr2 = url;
    
    parseptr1 = strstr(parseptr2, "http://");
    if(NULL == parseptr1)           //解析用户输入URL形式如"431K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3u0S2K9h3c8#2i4K6u0W2j5$3!0E0i4K6t1$3M7i4g2G2N6q4)9K6b7W2)9J5y4X3&6T1M7%4m8Q4x3@1u0Q4c8e0k6Q4z5o6y4Q4z5o6g2Q4c8e0g2Q4z5o6k6Q4b7U0g2Q4x3U0k6F1j5Y4y4H3i4K6y4n7
    {
        parseptr1 = strchr(parseptr2, '/');
        len = parseptr1 - parseptr2;
        if(NULL == parseptr1) //解析主机、资源名 
        {
            strcpy(host, parseptr2);
            strcpy(resource, "/");
        }
        else     //解析用户输入URL形式如"6bbK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3u0S2K9h3c8#2i4K6u0W2j5$3!0E0i4K6u0r3P5s2S2^5i4K6t1$3M7i4g2G2N6q4)9K6b7W2!0q4y4W2)9^5x3#2)9^5y4g2!0q4y4g2)9^5y4W2!0n7y4g2)9J5y4X3&6T1M7%4m8Q4x3@1t1`.
        {
            for(i = 0; i < len; i++)
            {
                host[i] = parseptr2[i];//解析主机名 
            }
            host[len] = '\0';
            for(i = 0; i < len; i++)
            {
                parseptr2++;
            }
            strcpy(resource, parseptr2);//解析资源名 
        }
        printf("host: %s\nresouce: %s\n", host, resource);
    }
    else
    {
        parseptr1 = strchr(parseptr2, ':');  //解析用户输入URL形式如"342K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3u0S2K9h3c8#2i4K6u0W2j5$3!0E0i4K6t1$3M7i4g2G2N6q4)9K6b7W2!0q4y4W2)9^5x3#2)9^5y4g2!0q4y4g2)9^5y4W2!0n7y4g2)9J5y4X3&6T1M7%4m8Q4x3@1t1`.
        len = parseptr1 - parseptr2;
        printf("protocol: ");   //解析协议 
        for(i = 0; i < len; i++)
        {
            printf("%c", parseptr2[i]);
        }
        for(i = 0; i < 3; i++)
        {
            parseptr1++;
        }
        parseptr2 = parseptr1;
        parseptr1 = strchr(parseptr2, '/');
        len = parseptr1 - parseptr2;
        if(NULL == parseptr1)
        {
            strcpy(host, parseptr2);     //解析主机名 
            strcpy(resource, "/");       //解析资源名 
        }
        else   //解析用户输入URL形式如"90fK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3u0S2K9h3c8#2i4K6u0W2j5$3!0E0i4K6u0r3P5s2S2^5i4K6u0W2i4K6u0W2i4K6t1$3M7i4g2G2N6q4)9K6b7W2!0q4y4W2)9^5x3#2)9^5y4g2!0q4y4g2)9^5y4W2!0n7y4g2)9J5y4X3&6T1M7%4m8Q4x3@1t1`.
        {
            for(i = 0; i < len; i++)
            {
                host[i] = parseptr2[i];
            }
            host[len] = '\0';
            parseptr2 = parseptr1;
            strcpy(resource, parseptr2);
        }
        
        printf("\nhost: %s\nresource: %s\n", host, resource);
    }
    WSADATA wsaData;
    WSAStartup(MAKEWORD(2,2), &wsaData);      //这句被我去了后可以正常编译
    
}
int main(void)
{
	char *url;
	scanf("%s",url);
	geturl(url);
}

我使用gcc编译出现

刚来论坛,第一次发帖,不知道对不对

求教,谢谢


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
问题已解决。
缺少socket的链接参数:-lws2_32
已可以正常编译
2017-5-6 15:45
0
游客
登录 | 注册 方可回帖
返回