我用indy10+D2007发送方执行
IdTCPClient1.Socket.Write(RawToBytes(memStream.Memory^,memStream.Size));
memStream里面的数据绝对正确,我做了验证的接收方
procedure TForm2.IdTCPServer1Execute(AContext: IdContext);
里面执行这一句
AContext.Connection.Socket.ReadStream(stream);
这里得到的stream.size始终=0,叫天天不应阿!
IdTCPClient1.Socket.Write(RawToBytes(memStream.Memory^,memStream.Size));
memStream里面的数据绝对正确,我做了验证的接收方
procedure TForm2.IdTCPServer1Execute(AContext: IdContext);
里面执行这一句
AContext.Connection.Socket.ReadStream(stream);
这里得到的stream.size始终=0,叫天天不应阿!
begin
IdTCPClient1.Host:='127.0.0.1';
IdTCPClient1.Connect;
end;procedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread);
begin
Memo1.Lines.Add('有用户连接');
end;procedure TForm1.Button2Click(Sender: TObject); //发送按钮
var
sm:TStringStream;
msize:Integer;
begin
sm:=TStringStream.Create('大家好');
msize:=sm.Size;
Memo1.Lines.Add('发送时流大小为:'+inttostr(msize));
IdTCPClient1.WriteInteger(msize);
IdTCPClient1.WriteStream(sm);
sm.Free;
end;procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
s:string;
sm:TStringStream;
msize:integer;
begin
sm:=TStringStream.Create('');
msize:=AThread.Connection.ReadInteger();
Memo1.Lines.Add('接收到的大小为:'+inttostr(msize));
AThread.Connection.ReadStream(sm,msize);
Memo1.Lines.Add(sm.DataString);
sm.Free;
end;