我有一个用Python编写的XMLRPC服务器(使用xmlrpclib),它定义了以下方法:def saveFileOnServer(fileName, xmldata):

handle = open(fileName, "wb")

handle.write(xmldata.data)

handle.close()

return 0

如果我使用Python客户机连接并发送文件,则一切正常(文件已传输):

^{pr2}$

但是。。。我必须从TCL脚本连接到这个XMLRPC服务器。我要做的是:package require XMLRPC

package require SOAP

package require rpcvar

package require http

set fd [open "resource.res" r]

fconfigure $fd -translation binary

set data [read $fd]

close $fd

XMLRPC::create ::PytharAgent::saveFileOnServer -name "saveFileOnServer" -proxy [::PytharAgent::endpoint] -params {fileName string file binary}

puts [::PytharAgent::saveFileOnServer "C:\\Location\\resource.res" $data]

由此得出以下错误::not well-formed (invalid token): line 2, column 154

invoked from within

"$parseProc $procVarName $reply"

(procedure "invoke2" line 17)

invoked from within

"invoke2 $procVarName $reply"

(procedure "::SOAP::invoke" line 25)

invoked from within

"::SOAP::invoke ::SOAP::_PytharAgent_saveFileOnServer {C:\Location\resource.res} IxNResourceItev1.0.0.0JTYPE2\tm_versio..."

("eval" body line 1)

invoked from within

"eval ::SOAP::invoke ::SOAP::_PytharAgent_saveFileOnServer $args"

(procedure "::PytharAgent::saveFileOnServer" line 1)

invoked from within

"::PytharAgent::saveFileOnServer "C:\\Location\\resource.res" $data"

invoked from within

"puts [::PytharAgent::saveFileOnServer "C:\\Location\\resource.res" $data]"

(file "test.pythat-agent.tcl" line 109)

然后,我将Python代码中的二进制数据和TCL代码中的二进制数据与原始文件进行比较。我在HEX视图中验证后发现,使用TCL读取的数据有原始数据加上一些时不时额外的十六进制代码,或是稍微修改了一些十六进制代码。在

所以我猜这可能与TCL和Python处理二进制数据的不同方式有关。还是我在读TCL的时候做错了什么?在

PS我还发现了this issue似乎和我的很相似,但我不知道确切的解决方案是什么。在

tcl怎么实现从服务器拷贝文件夹,如何在TCL中二进制读取文件并通过XMLRPC将其发送到用Python编写的服务器?...相关推荐

  1. linux 桌面壁纸图片在哪个文件夹,如何在 Linux 中为每个屏幕设置不同的壁纸-桌面背景在哪个文件夹...

    编译自: https://itsfoss.com/wallpaper-multi-monitor/ 作者: Abhishek Prakash 译者: geekpi如果你想在 Ubuntu 18.04 ...

  2. linux下如何搜索某个文件,技术|如何在 Linux 中查找一个文件

    对于新手而言,在 Linux 中使用命令行可能会非常不方便.没有图形界面,很难在不同文件夹间浏览,找到需要的文件.本篇教程中,我会展示如何在 Linux 中查找特定的文件. 第一步要做的是find 命 ...

  3. java 读取文件的指定行_Java中实现读取文件指定行

    Java中实现读取文件指定行 读取文件指定行要用到类LineNumberReader,它是跟踪行号的缓冲字符输入流,其基类是BufferedReader..它有两个构造方法: public LineN ...

  4. android shell强制删除文件夹_原来手机中的这些文件可以删除,难怪手机越用越卡!...

    很多从 iOS 转移到 Android 生态的用户,总是会有这样的抱怨:Android 系统越用越卡,就算清理垃圾也没用! 但其实在Android系统中,除了日常的清理垃圾,我们还可以将一些没用的文件 ...

  5. 如何在linux上压缩文件夹,如何在Linux中使用命令压缩文件和文件夹

    通常情况下,我们都是安装了zip,但验证一下也无妨.你可以运行下面的命令来安装zip sudo apt install zip unzip 现在你知道你的系统支持zip了,你可以继续阅读学习如何在Li ...

  6. java中bin和src文件夹_编译src中的所有文件?

    这是我得到的: /myjava/compile.cmd /myjava/src/a/HelloWorld.java /myjava/src/b/Inner.java /myjava/src/b/Inn ...

  7. 请问苹果x是如何建文件夹_Mac OS X中创建新文件夹的几种方法

    在日常的生活工作中,我们经常需要创建新的文件夹,这些文件夹可以帮助我们更好的管理我们的文件和电脑.因此创建新文件夹也是每个用户都会的事,在最新的MAC OS X系统中,我们可以通过几种方法创建新文件夹 ...

  8. python找不到scripts文件夹_Python目录下中没有Script文件夹

    其中需要将C:\python27\Scripts 和 C:\python27 添加到系统路径中. 计算机属性-远程设置-高级(环境变量)-系统变量PATH后面添加Scrips的路径 而我的Python ...

  9. java下载整个文件夹_Java下载目录中的所有文件和文件夹

    你需要下载页面,这是目录列表,解析它,然后下载链接在页面中的inidiviudal文件- 你可以做点什么-- URL url = new URL("http:www.futureretrog ...

  10. chrome查看网页文件_如何在Chrome中直接将文件和网页下载到Google云端硬盘

    chrome查看网页文件 We've all downloaded files from the web to our computer. However, if you'd rather downl ...

最新文章

  1. Android ListView 删除 item
  2. 关于Linux Kernel中的宏定义likely和unlikely
  3. 调查显示开发者最讨厌 PHP,最爱 Python
  4. 【CyberSecurityLearning 15】VLAN技术与Trunk
  5. 第四届AutoDL挑战赛——AutoSpeech2019正式开赛
  6. boost::geometry::strategy::within::franklin用法的测试程序
  7. 【Android开发】之Fragment与Acitvity通信
  8. Altium AD20原理图从库中更新变动,库中模型修改后同步到原理图中
  9. MySQL循环结构例题_Mysql:循环结构
  10. 采用分治法求一个整数序列中的最大和最小元素
  11. C#与PLC通信开发之松下FP系列PLC
  12. h5分享图片到微信好友、微信朋友圈、qq好友功能
  13. 全链路日志追踪系统介绍与思考
  14. echarts Map(地图) 波纹数据点
  15. 使用FTP(IOS FTP客户端开发教程)
  16. SpringBoot:运行项目是报错org.apache.ibatis.builder.IncompleteElementException:
  17. 紫铜带、黄铜带、锡磷青铜带、白铜带的特性
  18. 视频直播APP源码开发iOS音频播放流程
  19. electron-updater 自动更新
  20. python 完全背包问题_背包问题九讲python3实现

热门文章

  1. css面试精讲之防止高度坍塌的4种方式
  2. 冰箱味道很臭?那你真的该学学这些除臭妙招
  3. 中科院计算所沈华伟:图神经网络表达能力的回顾和前沿
  4. 2020计算机专业保研夏令营面经:中科院计算所网数机试题目
  5. 最新各大互联网公司薪酬盘点!你想好去哪家了吗?
  6. 程序员数学(23)–图形的旋转与中心对称
  7. win10删除软件注册表
  8. 安科瑞ACTB-6互感器二次侧开路保护装置
  9. 把华为交换机设置成(NTP)时钟源服务器
  10. js 时区对应的时间转换