#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<IP address>");
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);
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;
if(fputs(recvline,stdout) == EOF)
err_sys("fputs error");
}
if(n<0)
err_sys("read error");
exit(0);
}
![](file:///C:/Users/Administrator/AppData/Local/YNote/Data/23603357@qq.com/cde38c498df342359b1a83a31768aa09/clipboard.png)
open systems interconnection OSI模型![](file:///C:/Users/Administrator/AppData/Local/YNote/Data/23603357@qq.com/cde38c498df342359b1a83a31768aa09/clipboard.png)
![](file:///C:/Users/Administrator/AppData/Local/YNote/Data/23603357@qq.com/cde38c498df342359b1a83a31768aa09/clipboard.png)
![](file:///C:/Users/Administrator/AppData/Local/YNote/Data/23603357@qq.com/cde38c498df342359b1a83a31768aa09/clipboard.png)
netstat -ni 显示网络接口
netstat -r 路由表信息
ifconfig 输出IP地址信息
POSIX可移植的操作系统
ILP32 int long pointer 32位
![](file:///C:/Users/Administrator/AppData/Local/YNote/Data/23603357@qq.com/97a1a21bc84e413a9c1a6847777b2484/clipboard.png)