Avira Antivirus обнаруживает функцию прослушивания как бэкдор-модель - PullRequest
3 голосов
/ 05 августа 2010

Функция

listen( ListenSocket, SOMAXCONN )

обнаружен антивирусом avira в качестве бэкдора.

Как я могу писать небольшие клиент-серверные приложения без функции прослушивания?

Есть ли способ сделать это?

Ответы [ 4 ]

2 голосов
/ 05 августа 2010

Если вам нужно принимать соединения, то нет, вы не можете сделать это без вызова listen.

Если вы можете сделать ваше приложение просто клиентом, а сервер работает где-то еще, тогда ваш клиент может подключиться к серверу, а сервер может выступать в качестве посредника для подключения других клиентов к ...

В любом случае, я бы об этом не беспокоился.Если вы используете сервер, к которому вы хотите иметь возможность подключаться с компьютера, отличного от того, на котором он работает, в вашей документации нужно будет объяснить, как открыть порты брандмауэра, и так далее, просто добавьте подробную информацию о том, как исключитьприложение из антивирусных приложений, которое оно смущает.

Кроме того, ваше приложение принимает подключения из внешних источников, и поэтому антивирусное приложение правильно предупредить пользователя.Вы должны информировать пользователя, что для вашего приложения это нормально, потому что оно делает это по любой уважительной причине.Если вы не хотите объяснять это пользователю, то, IMHO, вы пишете бэкдор;)

0 голосов
/ 08 августа 2010

Если вы имеете дело с TCP-соединениями и знаете, кто / откуда это соединение, и у вас есть сторонняя организация, которая может сообщить вам, когда будет пытаться установить соединение, это действительно для обеих сторон до connect друг к другу в то же время. Выполнение этого может согласовать соединение без любой стороны, слушающей. Это не хорошее решение и требует гораздо более сложной реализации, если задействован NAT, но это возможно, если клиент и сервер находятся в локальной сети.

0 голосов
/ 05 августа 2010

Avira полна всевозможных ложных срабатываний, которые легко обойти. Попробуйте сохранить прослушивание в указателе функции и вызвать его. Это, вероятно, сработает.

0 голосов
/ 05 августа 2010

Удаление Avira Antivirus; -)

Сервер по определению прослушивает входящие соединения, а клиенты инициируют соединения с сервером.В сетях TCP / IP сервер достигает этого путем bind() и listen() в сокете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...