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