无法发送文件

时间:2014-11-25 23:39:07

标签: c file serial-port send

我正在制作一个我必须实施Stop-and-Wait协议的项目。我试图将帧发送到另一台计算机,但我发送的功能不起作用。代码如下。如果您需要查看更多代码,请告诉我们。我刚刚在这里写到了对这个问题最重要的想法。

这是我发送帧的功能,它应该从文件中读取信息并将其拆分成帧,并将帧的其他信息添加到每个帧。这部分工作得很好,问题是当我尝试逐帧发送时,它只是没有做到。如果我打印temp,它打印很好。

void sendFrame()
{
    char *buf;
    char* filename = "mytext.txt";
    struct stat tr;
    stat(nomefich, &tr);
    int size = tr.st_size;
    FILE *fi = fopen(filename,"rb");
    buf = malloc(size);
    fread(buf,size,1,fi);
    fclose(fi);

    //printf("%s",buf);

    char *buffer=(char *)malloc(256*sizeof(char));

    char *source=buf;
    char *dst=buffer;
    char *src=source;
    char *end=source+strlen(source);


    while(src<=end)
    {
        strncpy(dst,src,255);

        src +=255;
        dst[256]='\0';
        char *temp;
        temp=dados(dst);
        char *confir;
        do{
            char *frameTemp;
            printf("%s",temp);
            send(temp);
            confir=getConf();
        }while(confir!="TRUE");
    }
}

这是我发送数组的函数发送:

    void send(char *frame)
{
    int port;
    port=open_port();
    sendData(frame,strlen(frame),port);
    close(port);
}

这是sendData(),它将逐个字符的数组发送到串口:

void sendData(char *buffer, int size, int port) 
{
    int aux = 0;
    while(aux != size){
        write(port, &buffer[aux], sizeof(char));
        aux ++;
    }
}

函数send()和sendData()似乎工作正常。问题在于sendFrame(),我认为

0 个答案:

没有答案