📄 daytimetcpcli.c
字号:
/* daytimetcpcli.c */#define MAXLINE 4096#define LISTENQ 1024#define SA struct sockaddr#include "curses.h"#include "stdlib.h"#include "stdio.h"#include "errno.h"#include "netdb.h"#include "string.h"#include "sys/time.h"#include "sys/types.h"#include "sys/socket.h"#include "netinet/in.h"#include "memory.h"#include "stdarg.h"#include "syslog.h"int daemon_proc;static void err_doit(int errnoflag,int level,const char * fmt,va_list ap){ int errno_save,n; char buf[MAXLINE]; errno_save = errno;#ifdef HAVE_VSNPRINTF vsnprlntf(buf,sizeof(buf),fmt,ap);#else vsprintf(buf,fmt,ap);#endif n = strlen(buf); if(errnoflag) snprintf(buf + n,sizeof(buf) -n,":%s",strerror(errno_save)); strcat(buf,"\n"); if(daemon_proc){ syslog(level,buf); }else{ fflush(stdout); fputs(buf,stderr); fflush(stderr); } return;}err_sys(const char * fmt,...){ va_list ap; va_start(ap,fmt); err_doit(1,LOG_ERR,fmt,ap); va_end(ap); exit(1);}err_quit(const char * fmt,...){ va_list ap; va_start(ap,fmt); err_doit(0,LOG_ERR,fmt,ap); va_end(ap); exit(1);}/* Define bzero() as a macro if it's not in standard C library. */#ifndef HAVE_BRZEO #define bzero(ptr,n) memset(ptr,0,n) #endifint main(int argc,char * * argv){ int sockfd,n; struct sockaddr_in servaddr; char recvline[MAXLINE+1]; if(argc != 2) err_quit("usage:a.out<IPaggress>"); if((sockfd = socket(AF_INET,SOCK_STREAM,0))<0) err_sys("socket error"); bzero(&servaddr,sizeof(servaddr)); servaddr.sin_family = AF_INET; //servaddr.sin_addr.s_addr = htonl(INADDR_ANY); 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);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -