一、代码
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/socket.h>
- #include <arpa/inet.h>
- #include <unistd.h>
- #include <string.h>
- #include <time.h>
-
- int main(int argc, char const *argv[])
- {
- time_t timer;
- struct tm *tblock;
-
-
- int fd = socket(AF_INET,SOCK_STREAM,0);
-
-
- struct sockaddr_in saddr;
- saddr.sin_family = AF_INET;
- saddr.sin_addr.s_addr = INADDR_ANY;
- saddr.sin_port = htons(9999);
- bind(fd,(struct sockaddr*)&saddr,sizeof(saddr));
-
-
- listen(fd,8);
-
-
- struct sockaddr_in clientaddr;
- socklen_t len = sizeof(clientaddr);
- int cfd = accept(fd,(struct sockaddr*)&clientaddr,&len);
-
-
- char clientIP[16]="";
- inet_ntop(AF_INET,&clientaddr.sin_addr.s_addr,clientIP,sizeof(clientIP));
- unsigned short clientport = ntohs(clientaddr.sin_port);
- printf("client IP:%s,port:%d\n",clientIP,clientport);
-
-
-
- char buf[1024]={0};
- while(1)
- {
-
- fgets(buf,sizeof(buf),stdin);
- timer = time(NULL);
- tblock = localtime(&timer);
- write(cfd,buf,sizeof(buf));
- printf("%sserver says:%s\n",asctime(tblock),buf);
- memset(buf,0,sizeof(buf));
-
-
- timer = time(NULL);
- tblock = localtime(&timer);
- int len= read(cfd,buf,sizeof(buf));
- if(len==-1)
- {
- perror("read");
- exit(-1);
- }
- else if(len==0)
- {
- printf("client close\n");
- exit(0);
- }
- else
- {
- printf("%sclient says:%s\n",asctime(tblock),buf);
- }
- memset(buf,0,sizeof(buf));
- }
-
- close(cfd);
- close(fd);
- return 0;
- }
-
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/socket.h>
- #include <arpa/inet.h>
- #include <unistd.h>
- #include <string.h>
- #include <time.h>
-
-
- int main(int argc, char const *argv[])
- {
- time_t timer;
- struct tm *tblock;
-
-
- int fd = socket(AF_INET,SOCK_STREAM,0);
-
-
- struct sockaddr_in serveraddr;
- serveraddr.sin_family = AF_INET;
- inet_pton(AF_INET,"192.168.88.111",&serveraddr.sin_addr.s_addr);
- serveraddr.sin_port = htons(9999);
- int ret = connect(fd,(struct sockaddr *)&serveraddr,sizeof(serveraddr));
- if(ret==-1)
- {
- perror("connect");
- exit(-1);
- }
-
- char serverIP[16]="";
- inet_ntop(AF_INET,&serveraddr.sin_addr.s_addr,serverIP,sizeof(serverIP));
- unsigned short serverport = ntohs(serveraddr.sin_port);
- printf("server IP:%s,port:%d\n",serverIP,serverport);
-
-
-
-
- char buf[1024]={0};
- while(1)
- {
-
- timer = time(NULL);
- tblock = localtime(&timer);
- int len = read(fd,buf,sizeof(buf));
- if(len==-1)
- {
- perror("read");
- exit(-1);
- }
- else if(len==0)
- {
- printf("server close\n");
- exit(0);
- }
- else
- {
- printf("%sserver says:%s\n",asctime(tblock),buf);
- }
-
- memset(buf,0,sizeof(buf));
-
- fgets(buf,sizeof(buf),stdin);
- timer = time(NULL);
- tblock = localtime(&timer);
- write(fd,buf,sizeof(buf));
- printf("%sclient says:%s\n",asctime(tblock),buf);
- memset(buf,0,sizeof(buf));
-
- }
-
- close(fd);
- return 0;
- }
-
-
二、效果