小编Sam*_*Sam的帖子

如何在c程序的TCP套接字编程中将整个字符串传递给读写函数

这里是一个示例程序,用于从服务器程序中的多个客户端到服务器获取月份或年份或时间请求,这里我无法发送"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(&current_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)

c sockets

4
推荐指数
1
解决办法
7720
查看次数

标签 统计

c ×1

sockets ×1