主题:如何向ETR232i一次写入200多K的数据? 共有53145人关注过本帖 |
---|
尘封 |
1楼 |
![]() |
如何向ETR232i一次写入200多K的数据? ![]()
我们用的贵公司的ETR232构建嵌入式终端, 在系统启动时根据配置不同,要从服务器上下载不同的执行程序。
以前是用FTP实现的, 但是FTP更新失败率太大, 如有100个终端同时启动的话,下载成功率只能达到20%左右。所以我想在程序中自己实现。可执行程序大约有200多K。 系统启动时,首先建立与服务器的连接, 然后向服务器发送一个自定义的数据帧, 里面有要下载的文件的文件名。服务器收到请求帧后, 首先返回要下载的文件的大小, 接着一次发送1024个字节, 一直到文件结束。 客户端收到响应帧后,取出文件大小开始接收,可是在实际过程中,当服务器端发送了38次左右后和客户端的连接就丢失了,而此时的客户端只接收到20次左右的数据, 也就是说只有20多K, 引起这种原因的因素有哪些呢? 我写的收发程序, 如果同时在计算机上运行时,可以正确的接收到从服务器返回的文件. |
单帖管理 | 引用 | 回复 ![]() |
尘封 |
2楼 |
![]() |
![]()
服务器端有时能够捕获到异常, 提示
Connection reset by peer. Socket Error #10054 |
单帖管理 | 引用 | 回复 ![]() |
zhl |
3楼 |
![]() |
![]()
ETR232i是否用了电子盘DOC?用FTP应该是最好的方案。在调用FTP_getput(...)函数时一定要判断函数的返回值,只有返回0,才表明文件传输成功。
请查收邮件,请将库文件更新。 |
单帖管理 | 引用 | 回复 ![]() |
尘封 |
4楼 |
![]() |
![]()
没有使用电子盘DOC.
我将库文件更新再试试. |
单帖管理 | 引用 | 回复 ![]() |
x10 |
5楼 |
![]() |
![]()
作为FTP进行远程程序更新,需要确保下载的程序无误,才能进行重启动。ETR232i基本的326K空间恐怕难以装载多个应用程序,所以还是应当考虑使用DOC2000电子盘,此外DOC2000的写入速度比一般的FLASH快很多,也有利于避免TCP数据传送的超时问题。
|
单帖管理 | 引用 | 回复 ![]() |
尘封 |
6楼 |
![]() |
![]()
我想问下,如果空间不够的话,会出现什么情况?
|
单帖管理 | 引用 | 回复 ![]() |
x10 |
7楼 |
![]() |
![]()
如果空间不够,写文件肯定会fail。
|
单帖管理 | 引用 | 回复 ![]() |
尘封 |
8楼 |
![]() |
![]()
我用FTP的方式己经实现了这个功能, 谢谢你们.
|
单帖管理 | 引用 | 回复 ![]() |