gpt4 book ai didi

c - 通过 GPRS FTP 上传文件大小 0 字节

转载 作者:行者123 更新时间:2023-11-30 19:18:30 24 4
gpt4 key购买 nike

我正在对一个嵌入式模块进行编程,以通过 GPRS 连接通过 FTP 发送文件。

文件有时上传得很好,但同样经常我会得到一个不包含数据且文件大小为 0 字节的文件。

我的猜测是某些原因导致它在服务器端转储所有数据,因为我收到显示所有数据发送的打印语句。

我正在使用C代码,当前使用最初由sierra wireless“FTP_PUT”提供的修改示例。这是结束阶段的简化示例:

dataWritten = wip_write(data_channel, bufferPtr + offset, buffSize - offset);

if(dataWritten != 0)
{
print("%d bytes sent in this packet",dataWritten); //appears to send everything
}

offset += dataWritten;
if(offset == bufferSize)
{
wip_close(data_channel);
}

最佳答案

发现问题,sierra wireless“wip_close(data_channel)”的标准内置函数没有正确关闭线路。

该软件将首先在 FTP 服务器上放置一个命名文件 - 0 字节。

数据包似乎已成功发送。

关闭使用 FTP 的数据通道时,必须确保连接正确关闭,否则所有数据包都会被丢弃。

0 字节只是因为文件在传输数据包之前就放置在那里。

对于其他想要了解更多详细信息的 Sierra Wireless 用户,请参阅下文:

原始代码:

handle_events_on_FTP_channel(){

case WIP_CEV_OPEN:
wip_putFile(control_channel,x,x,x)
break;

case WIP_CEV_PEER_CLOSE:
wip_close(data_channel);
data_channel = NULL;

wip_close(control_channel);
control_channel = NULL;
break;
}

修改后的代码:

handle_events_on_FTP_channel(){

case WIP_CEV_OPEN:
wip_putFile(control_channel,x,x,x)
break;

case WIP_CEV_PEER_CLOSE:
wip_close(data_channel);
data_channel = NULL;

wip_close(control_channel);
control_channel = NULL;
break;

case WIP_CEV_DONE:
wip_close(control_channel);
break;
}

原始代码:

handle_events_on_data_channel(){

case WIP_CEV_WRITE:
wip_write(data_channel,x,x)

if(ALL_DATA_TRANSMITTED){
wip_close(data_channel);
data_channel = NULL;

wip_close(control_channel);
control_channel = NULL;
}
break;
}

修改后的代码:

handle_events_on_data_channel(){

case WIP_CEV_WRITE:
wip_write(data_channel,x,x)

if(ALL_DATA_TRANSMITTED){
wip_shutdown(data_channel,FALSE,TRUE) //Channel, Input, Output
}
break;

case WIP_CEV_PEER_CLOSE:
wip_close(data_channel);
data_channel = NULL;
}

n.b.代码被修改为最少,而不是与演示相同的逐个字符,但这里已经足够进行必要的修改。

关于c - 通过 GPRS FTP 上传文件大小 0 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26680025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com