Не удалось связать сокет. Адрес и порт уже используются — с использованием TIdSMTPServer и TIdPop3Server.

Я, наверное, прочитал десятки ответов и тем в Интернете, но мне все еще чего-то не хватает, чтобы исправить эту ошибку. У меня есть TIdPop3Server и TIdSMTPServer, и я хочу их активировать, но не могу сделать это успешно. Я установил свойство ReuseSocket обоих на rsTrue, и я не оставляю Bindings пустым, когда пытаюсь установить их обоих на .Active := True; Вот как выглядит мой код:

with POP3Server do begin
  ReuseSocket := rsTrue;
  Active := False;
  Bindings.Clear;
  DefaultPort := 110;
  Bindings.Add.IP := myIpAddr;
end;
with SMTPServer do begin
  ReuseSocket := rsTrue;
  Active := False;
  Bindings.Clear;
  DefaultPort := 25;
  Bindings.Add.IP := myIpAddr;
end;

И у меня есть TButton, на который я нажимаю, где это называется:

SMTPServer.Active := True;
Pop3Server.Acive := True;

Если кто-то уже исправил эту проблему, может ли он рассказать мне, как он это сделал (надеюсь, я еще не читал его ответ где-то еще...)


person Viktor Anastasov    schedule 25.09.2014    source источник
comment
Укажите, какой сервер не запускается. Я предполагаю, что это POP3Server, и это может быть ваша почтовая программа, блокирующая порт.   -  person Jens Borrisholt    schedule 26.09.2014
comment
Оба сервера выдают одну и ту же ошибку.   -  person Viktor Anastasov    schedule 26.09.2014
comment
Затем вы должны выполнить NETSTAT, чтобы узнать, что блокирует ваши порты.   -  person Jens Borrisholt    schedule 26.09.2014


Ответы (1)


Вы не сказали, какой сервер не может выполнить привязку. Но исправить на самом деле нечего. Что-то еще на вашем компьютере, вероятно, антивирус или брандмауэр, уже использует один из этих портов. Используйте такой инструмент, как Netstat или TCPViewer, чтобы узнать, какой процесс использует эти порты.

person Remy Lebeau    schedule 25.09.2014