Delphi11中使用Socket创建raw socket,运行到Socket函数时,提示range check err,求解
部分代码如下:
ret := WSAStartup($0202, wsdata);
if ret<>0 then
begin
Memo_send.lines.add('WSA Startup failed.');
exit;
end;
with Memo_send.lines do begin
add('WSA Startup:');
add('Desc.: ' + wsData.szDescription);
add('Status: ' + wsData.szSystemStatus);
end;
try
// Create socket
** sock := Socket(PF_INET, SOCK_RAW, IPPROTO_UDP);**
if (sock = INVALID_SOCKET) then
begin
Memo_send.lines.add('Socket() failed: '+IntToStr(WSAGetLastError));
exit;
end;