Lazarus и Indy10

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Djony333
незнакомец
Сообщения: 1
Зарегистрирован: 02.03.2013 15:38:28

Lazarus и Indy10

Сообщение Djony333 »

Всем доброго времени суток. Столкнулся с такой проблемой:
моя программа написанная на Lazarus ( Ubuntu ) использует компонент Indy10 TIdTCPServer. При активации сервера

Код: Выделить всё

  IdTCPServer1.DefaultPort:=StrToInt(Edit1.Text);
  IdTCPServer1.Active:=True;


выдает ошибку

Semaphore init failed (possibly too many concurrent threads).

Press OK to ignore and risk data corruption.
Press Cancel to kill the program.


Находил в инете решение этой проблемы, в файле проекта заменить

Код: Выделить всё

{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}

заменить на

Код: Выделить всё

{$IFDEF UNIX}
cthreads,
{$ENDIF}


После чего у меня появилась новая ошибка

Socket Error # 98
Address already in use.



Может кто знает, из-за чего выдаётся эта ошибка ? Пробовал порт менять на другой, всё равно выдаёт эту ошибку
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

я сталкивался. Изыскания привели к проблеме с IPv6. После внесения между указанием порта и запуском установки привязок всё заработало:

Код: Выделить всё

  DefaultPort := aPort;
  Bindings.Clear;
  Bindings.Add;
  Bindings.Items[0].SetPeer('localhost', aPort, id_IPV4);
  OnExecute := @Execute;
  Active := TRUE;
Ответить