Не могу понять где ошибка
delphi Код:
// ---------- Создание сокета --------------------------------------------------
// - IpAddres - ip-адрес
// - Port - номер порта
// - TypeSocket - тип сокера (UDP,TCP)
procedure TPredokClientServer.CreateSocket(IpAddres:string;Port:word;TypeSocket:char);
begin
// Формируем адрес сервера, к которому надо подключиться
// FillChar - стандартная процедура Паскаля, некоторую область памяти заданными
// значениями. В данном случае 0
FillChar(FSocketAddr.sin_zero,SizeOf(FSocketAddr.sin_zero),0);
// Семейство протоколов
FSocketAddr.sin_family:=AF_INET;
// Ip-адрес
// inet_addr - для преобразования адреса из строки в 32-х битное число
FSocketAddr.sin_addr.S_addr := inet_addr(PChar(IpAddres));
// Для совместимости со старыми версиями Delphi приводим константу INADDR_NONE
// к типу u_long
if FSocketAddr.sin_addr.S_addr = u_long(INADDR_NONE) then
begin
MessageDlg('Синтаксическая ошибка в IP-адресе',mtError,[mbOK],0);
Exit;
end;
// Преобразование в сетевой формат
// Функция htons служит для преобразования номера порта из привычного нам в
// сетевой. Если номер порта оставить нулевым, то система сама выберет для
// сокета свободный порт с номером от 1024 до 5000
FSocketAddr.sin_port:=htons(Port);
// Создание сокета
// function socket (AF,SocketType,Protocol:Integer):TSocket;
// - AF - какой стек протоколов используется (для TCP/IP - AF_INET)
// - SocketType - тир сокета (SOCK_STREAM - потоковый, SOCK_DGRAM - дейтаграммный)
// - Protocol - тип протокола TCP - потоковый, UDP - дейтаграммный
case TypeSocket of
'T':FSocket:=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
'U':FSocket:=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
end;
if FSocket = INVALID_SOCKET then
begin
MessageDlg('Ошибка при создании сокета: '#13#10 + GetErrorString, mtError, [mbOK], 0);
Exit;
end;
end;
Вылетает на строчке FillChar(FSocketAddr.sin_zero,SizeOf(FSocketAddr.s in_zero),0); с ошибкой raised exception class EAccessViolation with message 'Access violation at address 00402B2C in module Project1.exe'. Write of address '00000010' и т.д.
Заранее благодарен