现在一对一的图象网络传输已经搞好了,可我想2台机器采集上来的图象都放在另一台机器上的功能还没实现,代码如下,哪个帮我看看为何只能一对一的传输?这个是接受数据部分:现在改用UDP了procedure TServerForm.IdUDPServer1UDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); var RsltStream:tmemoryStream; j: TJpegImage; begin RsltStream:=tmemoryStream.Create; if ABinding.PeerIP ='192.168.3.53' then begin if AData.Size > 0 then begin RsltStream.CopyFrom(AData,AData.Size); if AData.Size < IdUDPServer1.BufferSize then begin RsltStream.Position:=0; j:=TJpegImage.Create; j.LoadFromStream(RsltStream); // Image1.Picture.Bitmap.LoadFromStream(RsltStream); image.Picture.Assign(j); j.Free; RsltStream.Clear; end; end; end else begin begin RsltStream.CopyFrom(AData,AData.Size); if AData.Size < IdUDPServer1.BufferSize then begin RsltStream.Position:=0; j:=TJpegImage.Create; j.LoadFromStream(RsltStream); // Image1.Picture.Bitmap.LoadFromStream(RsltStream); image1.Picture.Assign(j); j.Free; RsltStream.Clear; end; end; end;end;无论结果,明天先把这个帖子结了,实在不行就重新开帖子,钱少,分少,问题多
我其实只要每个客户机产生的线程可以和服务器上的IMAGE对应就可以了,知道了,就可以把图片流传到相应的IMAGE上了
ABinding: TIdSocketHandle);
var
RsltStream:tmemoryStream;
j: TJpegImage;
begin
RsltStream:=tmemoryStream.Create;
if ABinding.PeerIP ='192.168.3.53' then
begin
if AData.Size > 0 then
begin
RsltStream.CopyFrom(AData,AData.Size);
if AData.Size < IdUDPServer1.BufferSize then
begin
RsltStream.Position:=0;
j:=TJpegImage.Create;
j.LoadFromStream(RsltStream);
// Image1.Picture.Bitmap.LoadFromStream(RsltStream);
image.Picture.Assign(j);
j.Free;
RsltStream.Clear;
end;
end;
end
else
begin
begin
RsltStream.CopyFrom(AData,AData.Size);
if AData.Size < IdUDPServer1.BufferSize then
begin
RsltStream.Position:=0;
j:=TJpegImage.Create;
j.LoadFromStream(RsltStream);
// Image1.Picture.Bitmap.LoadFromStream(RsltStream);
image1.Picture.Assign(j);
j.Free;
RsltStream.Clear;
end;
end; end;end;无论结果,明天先把这个帖子结了,实在不行就重新开帖子,钱少,分少,问题多