win98在indy 的udp 中无法接受数据
如题
俺在做一个视频传送的程序
用win 98 作为 接受视频的一段
传送视频的一段时 其他操作系统的机子
但是现在的问题是我用win98 就是接收不到 数据
而用其他的 操作系统就能接受
一下贴出 两边的代码 求解答
发送视频数据端
Bitmap := TBitmap.Create;
Bitmap.Width := BMPINFO.bmiHeader.biWidth;
Bitmap.Height := BMPINFO.bmiHeader.biHeight;
// New size of Bitmap
hd := DrawDibOpen;
DrawDibDraw(hd, Bitmap.Canvas.Handle, 0, 0, BMPINFO.BmiHeader.biwidth,
BMPINFO.bmiheader.biheight, @BMPINFO.bmiHeader, lpVHdr^.lpData, 0, 0,
BMPINFO.bmiHeader.biWidth, BMPINFO.bmiHeader.biheight, 0);
DrawDibClose(hd);
memStream := TMemoryStream.Create;
jpg := TJpegImage.Create;
jpg.Assign(Bitmap);
jpg.CompressionQuality := 15;
jpg.JPEGNeeded;
jpg.Compress;
jpg.SaveToStream(memStream);
jpg.Free;
//因为UDP数据包有大小限制,这里如果超出部分,就没有传输,完全可以发几次发出去
Form1.IdUDPClient1.BroadcastEnabled := true; //用广播功能
if memStream.Size > Form1.IdUDPClient1.BufferSize then
begin
Form1.IdUDPClient1.SendBuffer('192.168.1.255', 9001, memStream.memory^, Form1.IdUDPClient1.BufferSize); //向192.168.0.X网段广播,端口 9001
end
else
begin
form1.IdUDPClient1.Send('1');
Form1.IdUDPClient1.SendBuffer('192.168.1.255', 9001, memStream.Memory^, memStream.Size);
end;
接受数据端
procedure TForm1.idpsrvr1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var jpg: TJpegImage;
j: Integer;
png: TPNGObject;
bmp: TBitmap;
ReceiveData: array[1..10000] of Byte;
begin
begin
try
j := AData.Size;
jpg := TJpegImage.Create;
jpg.LoadFromStream(Adata);
png := TPNGObject.Create;
bmp := TBitmap.Create;
bmp.Assign(jpg);
png.Assign(bmp);
img1.Picture.Assign(png);
jpg.Free;
bmp.Free;
png.Free
except
end;
end;
end;
哪位大神能帮忙解答下
[解决办法]