这里是一个示例程序,用于从服务器程序中的多个客户端到服务器获取月份或年份或时间请求,这里我无法发送"Fri Jan 11 11:59:51 2008"从服务器程序中的缓冲区到客户端的完整字符串.只有周五独自阅读客户端.
SERVER程序
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<string.h>
#include <unistd.h>
#include <fcntl.h>
#include<sys/stat.h>
#include<time.h>
int main(int argc,char **argv) {
int len,ch=0;
int sockfd,newfd;
struct sockaddr_in servaddr,cliaddr;
char str[1000];
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd<0)
printf("cannot create socket");
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family=AF_INET;
servaddr.sin_addr.s_addr=INADDR_ANY;
servaddr.sin_port=htons(7220);
if(bind(sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr))<0)
printf("Bind error");
listen(sockfd,5);
len=sizeof(cliaddr);
time_t current_time = time(NULL);
struct tm* local_time = localtime(¤t_time);
char *buff=asctime(local_time);
int leng=sizeof(buff);
//strcpy(buff,buff1);
printf("%d",leng);
printf("%s",buff);
int n=0;
while(1) {
newfd=accept(sockfd,(struct sockaddr*)&cliaddr,&len);
printf("request from client%d",n++);
n=write(newfd,buff,sizeof(buff));
//n=write(newfd,buff1+1,sizeof(buff1));
printf("message sent to client%d",n);
}
close(newfd);
close(sockfd); …Run Code Online (Sandbox Code Playgroud)