第1章

2020-06-17  本文已影响0人  vonww

1.1

netstat -i //获取网络接口信息
ifconfig en0 //以太网接口,mac环境
ping x.x.x.x //跟在broadcast后的广播地址,得到包括自身在内的主机ip地址

1.2

'unp.h' file not found的解决办法(mac系统)

gcc --version//得到查找路径

--with-gxx-include-dir=path/usr这一条就是gcc的查找路径

设你电脑上的源码文件夹的绝对路径为mac/unpv13e
建立三个软连接,分别用于查找头文件以及链接静态库

sudo ln -s mac/unpv13e/lib/unp.h path/usr/include/unp.h //绝对路径
sudo ln -s mac/unpv13e/config.h path/usr/include/config.h //绝对路径
sudo ln -s mac/unpv13e/libunp.a path/usr/lib/libunp.a //绝对路径

1.3

socket error: Address family not supported by protocol family
函数只返回-1,错误变量存在全局变量errno中,顺着定义err_sys-》err_doit-》errno》sys/errno.h可以看到具体定义如下。

#define EAFNOSUPPORT    47              /* Address family not supported by protocol family */

1.4

daytimetcpcli.c

        xxx
    servaddr.sin_port   = htons(9999);  /* daytime server */
        xxx

    int cnt=0;//计数器声明
    while ( (n = read(sockfd, recvline, MAXLINE)) > 0) {
        cnt++;//加一
        recvline[n] = 0;
        if (fputs(recvline, stdout) == EOF)
            err_sys("fputs error");
    }
    printf("计数:%d\n",cnt);//输出

1.5

daytimetcpsrv.c

        xxx
    servaddr.sin_port        = htons(9999); /* daytime server */
        xxx
    for ( ; ; ) {
        connfd = Accept(listenfd, (SA *) NULL, NULL);

        ticks = time(NULL);
        snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));
        for (size_t i = 0; i < strlen(buff); i++)
        {
            Write(connfd, buff+i, 1);
            sleep(1);//给缓冲时间
        }
        Close(connfd);
    }
上一篇下一篇

猜你喜欢

热点阅读