第一次写博客,出于两个原因,一方面记录下自己学习网络编程的过程,另一方面为以后查阅提供便利。
#include
#include
#include
#include
#include
#include
#define MAXLINE 1024 int main(int argc, char **argv) { int sockfd,n; char recvline[MAXLINE+1]; struct sockaddr_in servaddr; if(argc!=2) perror("usage:a.out
"); if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0) perror("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) printf("inet_pton error for %s",argv[1]); if(connect(sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr))<0) perror("connect error"); while((n=read(sockfd,recvline,MAXLINE))>0){ recvline[n]=0; if(fputs(recvline,stdout)==EOF) perror("fputs error"); } if(n<0) perror("read error"); exit(0); }
#include
#include
#include
#include
#include
#include
#include
#include
#define MAXLINE 1000 #define LISTENQ 5 int main(int argc, char **argv) { int listenfd,connfd; struct sockaddr_in servaddr; char buff[MAXLINE]; time_t ticks; listenfd=socket(AF_INET,SOCK_STREAM,0); bzero(&servaddr,sizeof(servaddr)); servaddr.sin_family=AF_INET; servaddr.sin_addr.s_addr=htonl(INADDR_ANY); servaddr.sin_port=htons(13); bind(listenfd,(struct sockaddr *)&servaddr,sizeof(servaddr)); listen(listenfd,LISTENQ); for(;;){ connfd=accept(listenfd,(struct sockaddr *)NULL,NULL); ticks=time(NULL); snprintf(buff,sizeof(buff),"%.24s\r\n",ctime(&ticks)); write(connfd,buff,strlen(buff)); close(connfd); } }