第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);
}