网络传输字节数组,前四个字节为0传输失败,请求怎么解决! 请大家帮忙! ( 积分: 100 )

  • 主题发起人 主题发起人 陌上花开
  • 开始时间 开始时间

陌上花开

Unregistered / Unconfirmed
GUEST, unregistred user!
网络传输字节数组,前四个字节为0传输失败,请求怎么解决! 请大家帮忙!
 
网络传输就像公路汽车运输, 车里装的是青菜萝卜还是鸡鸭或者空车都没有关系的;
是你的程序问题, 与字节为0没有关系;
//你传送字节数据的时候最好不要使用一些socket控件的字符串传送过程;
 
用流传应该不会出错的
 
新世纪,确实是这样,而且把文件流放到字节数组里,前四个字节为0就错误,如果不为0则都正确呀!
程序应该没问题。
 
1. 你用的是Delphi吗?
2. 你用什么控件或者函数进行网络传输?
3. 网络传输两端的程序都是你写的吗?
4. 错误: 什么错误? 显示的错误信息是什么? ...
5. 你应该用的是tcp传输吧, 前面我说的不要用一些控件的字符串传送过程, 你明白了吗?
6. 你可能刚开始学习编程, 要问问题可以, 但要明确提出你的问题, 不要让别人去猜测你的问题, 最好帖出代码, 给出错误信息;
7. 加油吧, 特别是电脑数据的基础概念..
 
一定是传错了地址,或者是读的代码有问题
 
新世纪, 1.用的是delphi
2.用的是WEBSERVICE上传数据,客户端是DELPHI服务器是.NET
3.我用Tfilestream读取字节数组多线程传输
 
我想和你交流交流,你能留下QQ吗?
 
type
TMyTransfer = class(TThread)
private
{ Private declarations }
myfilename:string;
sophead:AuthHeader;
MyProgreSsbar:TProgreSsbar ;
websrv:wsDataExchangeSoap;
myAry:TByteDynArray;
fs:Tfilestream;
len,cS,yS,n:longint;
biztype:string;
receiver:string;
b:boolean;
protected
procedure Execute; override;
procedure myload();
procedure updatepbar();

public
constructor Create(CreateSuspended: Boolean;filename:string;ProgreSsbar:TProgreSsbar; Mysophead:AuthHeader;
mywebsrv:wsDataExchangeSoap;mybiztype:string;myreceiver:string;);

end;

implementation
const TransCount=10250;


constructor TMyTransfer.Create(CreateSuspended: Boolean;filename:string;ProgreSsbar:TProgreSsbar;Mysophead:AuthHeader;
mywebsrv:wsDataExchangeSoap;mybiztype:string;myreceiver:string;);
begin
inherited Create(CreateSuspended);
fs:=tfilestream.Create(filename,fmopenread);//创建文件流
len:=fs.Size;//获取文件流长度
cs:=trunc(len/TransCount);
ys:=len mod TransCount;
n:=0;
MyProgreSsbar:=ProgreSsbar;
websrv:= mywebsrv ;
sophead:=Mysophead ;
ProgreSsbar.Min:=0 ;
ProgreSsbar.Max:=cs;
biztype:= mybiztype;
receiver:=myreceiver;
myfilename:=filename;

end;


procedure TMyTransfer.myload();
begin
CoInitializeEx(NIL,2);
n:=n+1;
if n>cs then
begin
setlength(myAry,ys);
fs.Readbuffer(myAry[0],ys);//将字节数组读入文件流
(websrv as isoapheaders).send(sophead);
fs.Position;
b:=websrv.UploadFile(receiver,biztype,myAry);
fs.Free ;//销毁文件流
Terminate;
end
else
begin
setlength(myAry,TransCount);//设置字节数组长度
fs.Readbuffer(myAry[0],TransCount);
(websrv as isoapheaders).send(sophead);
b:= websrv.UploadFile(receiver,biztype,myAry);

end;

//CoUninitialize();

end;

procedure TMyTransfer.Execute;
begin
{ Place thread code here }
try

while not Terminated do
myload;
except
{ do something with exceptions }
end;

end;

end.
 
上面就是代码,新世纪,
 
数据能传,丢数据!
 
在不在呀,大家帮忙啊/!
 
问题已经解决!
 
骗分了....
 
骗分?什么意思?
不明白^^^,我不明白,问题自己解决的,也没人给出什么好的建议,代码也帖出来了!
没有回答正确问题,我为什么要给分啊!
 
这个问题确实存在,不仅仅我提出来,网上也有人提出来,只是没人解决罢了!
我为什么要骗你们?
你有能力能解决我把我所以的分给你
 
后退
顶部