如何解决delphi和VC网络通信传输图像文件? 最近因公司需要,原来两个程序(服务端delphi,客户端vc开发)需要传图片, 服务端采用TIdTCPServer,先给客户端发送(WriteLn)图像大小文本信息,结尾有乱码,改为(Write)后,乱码数减少,仍然由乱码在末尾。图像直接发送流,也不正常,各位指点指点。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先给客户端发送图像大小文本信息使用Writeln是可以用的,Writeln会在发送的字符串后面加上0x0d0x0a,也就是回车换行,客户端接收的时候,可以依据它判断开头的是图像大小信息。。然后服务端只管发,客户端只管收二进制流。。这种自定义的协议同HTTP协议返回内容方式非常接近的。。(HTTP使用了两个回车换行作分隔) 关键是客户端是VC做的,发送端(Server,delphi开发)代码如下 //发送文件信息,大小,文件名 Write(ImgInfo); // Writeln(ImgInfo); //则回传图像数据流,约30K WriteStream(myStream,true,false); 如果用Write(ImgInfo);可以让ImgInfo定长..接收端接收定长的ImgInfo..这样的话,你发送端的代码没有多少问题. 是不是发送的文本信息后面没有空字符做结尾,结果C无法确定接收的文本长度,pascal和C在字符串处理上有差别。 首先发送定长字符串(30个),但是接收端收到的大于30个,在debug中看到。郁闷中... 大家帮我看看这个是怎么回事该怎么改,mysql odbc 数据源配置 如何让ShellExecute堵塞线程??? vc++翻译成Delphi 函数二 Delphi中如何替换运行之中的文件实现程序的自动更新 使用oleContainer遇到一个奇怪的异常 Brush.style设置成bsclear无效,急,在线等!! 请教:在ListView中怎样可以任意拖动这些图标呢?多谢! 如何生成DBF文件 高分求论坛源码(ASP/PHP) 关于更换图标的对话框 两台机器同时输入不同的数据,然后将这个两个数据库合并! MDI窗体的问题,-初学者!
Writeln会在发送的字符串后面加上0x0d0x0a,也就是回车换行,
客户端接收的时候,可以依据它判断开头的是图像大小信息。。然后服务端只管发,客户端只管收二进制流。。这种自定义的协议同HTTP协议返回内容方式非常接近的。。(HTTP使用了
两个回车换行作分隔)
//发送文件信息,大小,文件名
Write(ImgInfo);
// Writeln(ImgInfo);
//则回传图像数据流,约30K
WriteStream(myStream,true,false);
可以让ImgInfo定长..
接收端接收定长的ImgInfo..这样的话,你发送端的代码没有多少问题.