有个奇怪的问题请教
wr960204 opened this issue · 3 comments
我的开发环境是Windows10 X64,Delphi 11.0 Version 28.0.42600.6491
同样的代码,放在.dpr文件的入口就没问题,放在函数里就会出错:“
TIocpCrossSocket._NewAccept.AcceptEx : System Error. Code: 10038(2736), 在一个非套接字上尝试了一个操作。
TIocpCrossSocket._NewAccept.AcceptEx : System Error. Code: 10038(2736), 在一个非套接字上尝试了一个操作。
TIocpCrossSocket._NewAccept.AcceptEx : System Error. Code: 10038(2736), 在一个非套接
”
代码如下:
program ss;
{$APPTYPE CONSOLE}
{$R *.res}
uses
Net.CrossSslSocket,
Net.CrossSslDemoCert,
System.SysUtils, System.Classes, System.Generics.Collections,
Net.CrossSocket.Base,
Net.CrossSocket,
Net.CrossHttpServer,
Net.CrossHttpMiddleware,
Net.CrossHttpUtils;
type
TObj = class
procedure test(const ARequest: ICrossHttpRequest;
const AResponse: ICrossHttpResponse; var AHandled: Boolean);
end;
{ TObj }
procedure TObj.test(const ARequest: ICrossHttpRequest;
const AResponse: ICrossHttpResponse; var AHandled: Boolean);
begin
AResponse.Send('ABCDEF');
end;
//同样的代码,在函数里面调用就会出错
procedure startService();
var
Obj: TObj;
FHttpServer: ICrossHttpServer;
begin
Obj := TObj.Create;
FHttpServer := TCrossHttpServer.Create(0, False);
FHttpServer.Addr := IPv4v6_ALL; // IPv4v6
FHttpServer.Port := 8088;
FHttpServer.Compressible := True;
FHttpServer.All('/', Obj.test);
FHttpServer.Start();;
end;
var
Obj: TObj;
FHttpServer: ICrossHttpServer;
begin
// 同样的代码,直接调用没问题
// Obj := TObj.Create;
// FHttpServer := TCrossHttpServer.Create(0, False);
// FHttpServer.Addr := IPv4v6_ALL; // IPv4v6
// FHttpServer.Port := 8088;
// FHttpServer.Compressible := True;
//
// FHttpServer.All('/', Obj.test);
//
// FHttpServer.Start();
startService();
while(true) do
begin
Readln;
end;
end.
我猪了。擦
呵呵,武大偶尔也会有迷糊的时候