第一部分功能,client和server的连接已经成功建立,可以正常传输数据,server端可识别message数据包
client端代码:
1 #include <stdio.h> 2 #include <string.h> 3 #include <sys/types.h> 4 #include <sys/socket.h> 5 #include <arpa/inet.h> 6 #include "message.h" 7 #include "client.h" 8 9 int main(int argc,char **argv) 10 { 11 int sockfd,n; 12 char recvline[MAX_LINE+1]; 13 14 struct sockaddr_in servaddr; 15 if(argc!=2) 16 { 17 printf("usage:a.out<IPaddress>"); 18 return 0; 19 } 20 if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0) 21 { 22 printf("socket error"); 23 return 0; 24 } 25 bzero(&servaddr,sizeof(servaddr)); 26 servaddr.sin_family=AF_INET; 27 servaddr.sin_port=htons(13); 28 if(inet_pton(AF_INET,argv[1],&servaddr.sin_addr)<=0) 29 { 30 printf("inet_pton error for%s",argv[1]); 31 return 0; 32 } 33 if(connect(sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr))<0) 34 { 35 printf("connect error"); 36 return 0; 37 } 38 39 while((n=read(sockfd,recvline,MAX_LINE))>0) 40 { 41 recvline[n]=0; 42 if(fputs(recvline,stdout)==EOF) 43 { 44 printf("fputs error"); 45 return 0; 46 } 47 } 48 if(n<0) 49 { 50 printf("read error"); 51 return 0; 52 } 53 return 0; 54 }
server端代码:
#include <stdio.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <time.h> #include "message.h" #define MAX_LINE 1000 #define LISTENQ 5 int main(int argc,char **argv) { int listenfd,connfd; struct sockaddr_in servaddr; char buff[MAX_LINE]; 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); int n,i; Message package,aim; for(;;) { connfd=accept(listenfd,(struct sockaddr *)NULL,NULL); printf("HERE COMES THE TIME!\n"); ticks=time(NULL); snprintf(buff,sizeof(buff),"%.24s\r\n",ctime(&ticks)); write(connfd,buff,strlen(buff)); close(connfd); } }
连接部分代码来自于 unix网络编程 ,时间功能是其本身的例子,暂时保留中……
项目报告140303(补):连接建立,布布扣,bubuko.com
原文:http://www.cnblogs.com/keepcalmandcarryon/p/3584940.html