Can';不发送文件
我正在做一个项目,我必须实现一个停止和等待协议。我正在尝试将帧发送到另一台计算机,但我的发送功能不起作用。代码如下。如果你需要更多的代码,请告诉我。我只是在这里写了什么思想对这个问题最重要 这是我发送帧的函数,它应该从文件中读取信息并将其拆分为帧,然后将帧的其他信息添加到每个帧中。这部分工作得很好,问题是当我尝试一帧一帧地发送时,它就是不这样做。如果我打印温度,它打印得很好Can';不发送文件,c,file,serial-port,send,C,File,Serial Port,Send,我正在做一个项目,我必须实现一个停止和等待协议。我正在尝试将帧发送到另一台计算机,但我的发送功能不起作用。代码如下。如果你需要更多的代码,请告诉我。我只是在这里写了什么思想对这个问题最重要 这是我发送帧的函数,它应该从文件中读取信息并将其拆分为帧,然后将帧的其他信息添加到每个帧中。这部分工作得很好,问题是当我尝试一帧一帧地发送时,它就是不这样做。如果我打印温度,它打印得很好 void sendFrame() { char *buf; char* filename = "mytex
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");
}
}
这是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()上,我认为“不起作用”和“就是不起作用”不是可以帮助任何人调试问题的语句。我看到的一件事是,为什么要为每条消息打开和关闭端口?那帮不了什么忙。让端口保持打开状态并发送消息,等待响应,然后重复,直到发送完所有内容,然后关闭端口。此行:stat(nomefich,&tr);应该是:如果(0
void sendData(char *buffer, int size, int port)
{
int aux = 0;
while(aux != size){
write(port, &buffer[aux], sizeof(char));
aux ++;
}
}