2021SC@SDUSC
目录
一.前置知识点
1.回顾一下http serve的工作原理:
创建 TcpListener类对象,监听端口xx; 等待、接受客户机连接到端口xx; 创建与socket字相关联的输入流和输出流;然后,读取客户机的请求信息,若请求类型是GET,则从请求信息中获取所访问的HTML文件名,如果HTML文件存在,则打开HTML文件,把HTTP头信息和 HTML文件内容通过socket传回给Web浏览器,然后关闭文件。否则发送错误信息给Web浏览器。最后,关闭与相应Web浏览器连接的socket 字。
2.AF_INET,AF_INET6和AF_UNSPEC的区别
它们都是返回的套接口地址结构的类型,区别在于
如果指定AF_INET,那么函数就不能返回任何IPV6相关的地址信息;
如果仅指定了AF_INET6,则就不能返回任何IPV4地址信息。
AF_UNSPEC则意味着函数返回的是适用于指定主机名和服务名且适合任何协议族的地址。
二.关键代码分析:
int main(int argc, char *argv[])
{
unsigned short port;
if (argc != 2)
{
fprintf(stderr, "USAGE %s <port>