|
From: Lukas G. <geb...@ml...> - 2007-11-16 10:48:02
|
> As promised..
>
> procedure TBlockSocket.Bind(IP, Port: string);
> var
> Sin: TVarSin;
> tmpdbg: integer;
> begin
> FLastError := 0;
> if (FSocket <> INVALID_SOCKET)
> or not((FFamily = SF_ANY) and (IP = cAnyHost) and (Port =
> cAnyPort)) then
> begin
> SetSin(Sin, IP, Port);
> if FLastError = 0 then
> begin
> if FSocket = INVALID_SOCKET then
> InternalCreateSocket(Sin);
> writeln('DEBUG 5: ', synsock.wsagetlasterror);
> tmpdbg:= synsock.Bind(FSocket, Sin);
> writeln('DEBUG 4: ', synsock.wsagetlasterror);
> SockCheck(tmpdbg);
> writeln('DEBUG 3: ', synsock.wsagetlasterror);
> writeln('DEBUG 2: ', FLastError);
> writeln('DEBUG 1: ', tmpdbg);
> writeln('lift off!');
> GetSinLocal;
> FBuffer := '';
> FBinded := True;
>
> ...output...
>
> DEBUG 5: 0
> DEBUG 4: 0
> DEBUG 3: 0
> DEBUG 2: 0
> DEBUG 1: -1
>
> (Windows 2000 issue???)
As you can see, your code returning something different then MSDN
says. And what worst, it working fine on my systems.
Can you try yoru code on some different computer? Maybe you have
broken winsock, or something hook your winsock.
--
Lukas Gebauer.
E-mail: geb...@ml...
http://synapse.ararat.cz/ - Ararat Synapse - TCP/IP Lib.
|