Lazarus и Indy10

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

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

Lazarus и Indy10

Сообщение Djony333 » 02.03.2013 15:40:18

Всем доброго времени суток. Столкнулся с такой проблемой:
моя программа написанная на 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.



Может кто знает, из-за чего выдаётся эта ошибка ? Пробовал порт менять на другой, всё равно выдаёт эту ошибку
Djony333
незнакомец
 
Сообщения: 1
Зарегистрирован: 02.03.2013 15:38:28

Re: Lazarus и Indy10

Сообщение Brainenjii » 03.03.2013 01:30:55

я сталкивался. Изыскания привели к проблеме с IPv6. После внесения между указанием порта и запуском установки привязок всё заработало:
Код: Выделить всё
  DefaultPort := aPort;
  Bindings.Clear;
  Bindings.Add;
  Bindings.Items[0].SetPeer('localhost', aPort, id_IPV4);
  OnExecute := @Execute;
  Active := TRUE;
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 237

Рейтинг@Mail.ru
cron