![]() |
WinSock Error 1411 oder 10004
Hi,
ich wollte mal zum test ohne eine TCPClient komponente was machen Leider bekomme ich immer fehler wenn ich etwas an jemanden senden will. Send() und SendTo() funktionieren nicht. Wenn ich SendTo() ohne connect() verwende bekomme ich 1411 "Klasse ist nicht vorhanden" was mir aber gar nichts sagt. Wenn ich Send() mit connect() benutze bekomme ich 10004 "Ein Blockierungsvorgang wurde durch einen Aufruf von WSACancelBlockingCall unterbrochen" Ich würde aber selbst gerne lieber SendTo benutzen. naja leider funktioniert beides nicht und desshalb hoffe ich auf Hilfe :(
Delphi-Quellcode:
MfG: sk0r
procedure TForm1.FormCreate(Sender: TObject);
var TWSASocket: TWSADATA; WinSck: TSOCKET; TAddr: SockAddr_In; GetHost: PHOSTENT; SendBuf: array[0..1024] of char; BufLength: Integer; pIpAddr: PChar; begin BufLength := 1024; pIpAddr := '72.14.221.104'; WSAStartup($0101, TWSASocket); WinSck := Socket(AF_INET, SOCK_RAW, IPPROTO_RAW); if WinSck = INVALID_SOCKET then begin showmessage('Socket could not be created. '); WSACleanUp(); CloseSocket(WinSck); ExitProcess(0); end; if SetSockOpt(WinSck, IPPROTO_IP, IP_HDRINCL, 'l', 4) <> 0 then begin showmessage('Error'); WSACleanUp(); CloseSocket(WinSck); ExitProcess(0); end; //GetHost := GetHostByName(pIpAddr); TAddr.sin_family := AF_INET; TAddr.sin_port := htons(27015); TAddr.sin_addr.S_addr := inet_addr(pIpAddr); //if connect(WinSck, @TAddr, sizeof(TAddr)) = SOCKET_ERROR then showmessage('FU!'); //Send(WinSck, SendBuf, BufLength, 0); if SendTo(WinSck, SendBuf, BufLength, 0, TAddr, sizeof(TAddr)) = SOCKET_ERROR then showmessage('error!'); showmessage(SysErrorMessage(WSAGetLastError) + ' ' + inttostr(WSAGetLastError)); WSACleanUp(); CloseSocket(WinSck); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz