我在Delphi6 + indy8的环境下写了一个传输图片的程序
为了测试,我在client中每500毫秒自动给server端发送两张图片
但是在运行几个小时后出现"Cannot allocate socket"的异常
请各位老师给与帮助.
以下是client的部分代码:
发送是在单独的线程中运行的procedure TSendThread.Execute;
var
m: TMemoryStream;
begin
Self.FreeOnTerminate := True; try
FtcpClient.Connect; m := TMemoryStream.Create;
try
m.Write(FData, SizeOf(FData));
//发送车辆数据
FtcpClient.WriteStream(m, True, True); if TPackFunction(FData.FunID) = pfNew then
begin
//发送车牌图
FtcpClient.WriteStream(PlateImg, True, True);
//发送近景图
FtcpClient.WriteStream(VehicleImg, True, True);
end;
finally
m.Free;
FtcpClient.Disconnect;
end; except
on E: Exception do
begin
Form1.mmo1.Lines.Add(e.Message);
WriteLog('异常, 原因:' + e.Message);
end;
end;end;
为了测试,我在client中每500毫秒自动给server端发送两张图片
但是在运行几个小时后出现"Cannot allocate socket"的异常
请各位老师给与帮助.
以下是client的部分代码:
发送是在单独的线程中运行的procedure TSendThread.Execute;
var
m: TMemoryStream;
begin
Self.FreeOnTerminate := True; try
FtcpClient.Connect; m := TMemoryStream.Create;
try
m.Write(FData, SizeOf(FData));
//发送车辆数据
FtcpClient.WriteStream(m, True, True); if TPackFunction(FData.FunID) = pfNew then
begin
//发送车牌图
FtcpClient.WriteStream(PlateImg, True, True);
//发送近景图
FtcpClient.WriteStream(VehicleImg, True, True);
end;
finally
m.Free;
FtcpClient.Disconnect;
end; except
on E: Exception do
begin
Form1.mmo1.Lines.Add(e.Message);
WriteLog('异常, 原因:' + e.Message);
end;
end;end;
"MaxUserPort"=dword:0000fffe
参见
http://topic.csdn.net/u/20080324/15/129d97b4-ecee-45a0-9591-a0a5d2a4f855.html