c++中socket怎样解析url

2025-03-09 11:52:57
推荐回答(2个)
回答1:

  socket无法解析url
  解析url的包括两种服务,一种是DNS,一种是url服务器提供的服务。
  DNS负责将url中的域名解析为ip和端口,进而用户的计算机可以将url投递到目标服务器上。
  然后服务器依据url中的请求,做出相应,并应答用户。
  这些数据通信都是发生在tcp/ip层上的。而socket工作在此层,即socket为url访问提供服务,而非直接处理url

回答2:

url不是用socket解析,只是用来获取IP地址和端口
比如url = http://www.abc.com,ip = www.abc.com
if(strstr(url, "http") == url)就表示用WWW协议,那么socket地址就是
sockaddr_in h; memset(&h, 0, sizeof(h));
h.sin_family = AF_INET;
h.sin_port = htons(80); //用80端口
h.sin_addr.s_addr = gethostbyname(ip);
至于在主地址后面的内容,就要看从socket 会话后recv的结果分析了。