TSE源码分析-url.h

本文介绍了一个用于解析和处理URL的C++类CUrl。该类能够解析URL,并从中提取出scheme、host、port和path等关键信息。同时,文章还提供了一些辅助函数,如检查主机名的有效性、获取主机的IP地址等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//根据一个给定的URL,组成消息体,发送给该URL指向的服务器。

//为此,定义Url类
//url.h
#ifndef _URL_H_030728_
#define _URL_H_030728_

#include<string>

//定义URL和HOST长度

const unsigned int URL_LEN=256;
const unsigned int HOST_LEN= 256;

using namespace std;

//URL类型为HTTP、FTP、或无效
enum url_scheme {
SCHEME_HTTP,
SCHEME_FTP,
SCHEME_INVALID
};

//定义HTTP和FTP的默认端口

const int DEFAULT_HTTP_PORT = 80;
const int DEFAULT_FTP_PORT = 21;

class CUrl
{
public:
stringm_sUrl;//Original URL
enum url_scheme m_eScheme;//URL scheme

stringm_sHost;//Extracted hostname
intm_nPort;//Port number
stringm_sPath;//请求

public:
CUrl();
~CUrl();

//bool ParseUrl(string strUrl);

//解析URL的scheme, host, port and request

// break an URL into scheme,host, port and request.
// result as member variants
bool ParseUrlEx(string strUrl);

//解析URL的scheme, host, port and request

// break an URL into scheme, host, port andrequest.
// result url as argvs

//解析URL的scheme, host, port and request
void ParseUrlEx(const char *url, char *protocol,int lprotocol,
char *host,int lhost,
char*request, int lrequest, int *port);

// get the ip address by hostname通过主机名得到IP
char *GetIpByHost(const char *host);

//基本判断函数

bool IsValidHost(const char *ip);
bool IsForeignHost(string host);
bool IsImageUrl(string url);
bool IsValidIp(const char *ip);
bool IsVisitedUrl(const char *url);
bool IsUnReachedUrl(const char *url);
bool IsValidHostChar(char ch);

private:
void ParseScheme (const char *url);

};

extern pthread_mutex_t mutexMemory;

#endif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值