Функция TCsSocket StartUp
function TCsSocket.StartUp : Boolean; var VersionReqd : WordRec; begin with VersionReqD do begin Hi := 1; Lo := 1; end; Result := WSAStartUp(Word(VersionReqD), myWsaData) = 0; if not Result then begin FStatus := Failure; raise ECsSocketError.create('Cannot start Winsock!');
Exit; end else begin with myWsaData do begin FVendor := StrPas(szDescription);
FWSVersion := Concat(IntToStr(Hi(wVersion)),'.', (intToStr(Lo(wVersion))));
FWSStatus := StrPas(szSystemStatus);
FMaxNoSockets := IntToStr(iMaxSockets);
FMaxUDPPSize := IntToStr(iMaxUDPDg);
end; InfoEvent('Started WinSock');
end; end;
«Уборка мусора» не менее важна, чем инициализация. Когда клиентское приложение завершает свою работу (и не нуждается более в услугах Winsock), оно должно приказать Winsock DLL освободить используемую память. Процедура CleanUp (см. листинг 5.4) автоматически выполняет эту работу при закрытии Winsock DLL.