就下面这个代码,运行提示没有unp.h,找了个unp.h,但是还是提示什么各种数据类型重复定义.我到现在觉得是不是这本书写错了.
#include "unp.h"
int
main(int argc, char **argv)
{
int sockfd, n;
char recvline[MAXLINE + 1];
struct sockaddr_in servaddr;
if (argc != 2)
err_quit("usage: a.out <IPaddress>");
if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
err_sys("socket error");
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(13); /* daytime server */
if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)
err_quit("inet_pton error for %s", argv[1]);
if (connect(sockfd, (SA *) &servaddr, sizeof(servaddr)) < 0)
err_sys("connect error");
while ( (n = read(sockfd, recvline, MAXLINE)) > 0) {
recvline[n] = 0; /* null terminate */
if (fputs(recvline, stdout) == EOF)
err_sys("fputs error");
}
if (n < 0)
err_sys("read error");
exit(0);
}
unp头文件不是系统自带的。是作者自己封装的。所以你找不到。你可以参考网上其他socket例子。一般只用了规范的头文件。基本都能编译通过。
你看书肯定不仔细,unp.h 这个肯定在前面封装过, 你好好找找,不过你也可以在,看程序中用到那个函数直接包含也行
你买的书不行。估计作者胡乱写了一些代码,本身也没打算可以运行。如果作者有诚意,应该提供完整代码的文件,包括下载或者光盘,并且包含make文件,编译代码的指示,环境等信息。
附录或者网上down一下,这个头文件很好搜的,学习时要多用搜索引擎