Как я могу использовать сокеты в Perl? Есть ли модуль? - PullRequest
2 голосов
/ 12 ноября 2009

Как программировать сокеты в Perl? Есть ли для него какой-нибудь модуль?

Я пытаюсь заняться программированием сокетов в Perl. Я хочу знать, есть ли какие-либо модули для этого.

И еще один вопрос: возможно ли, чтобы несколько серверов прослушивали один порт, или несколько клиентов прослушивали один порт через программирование сокетов?

Ответы [ 5 ]

5 голосов
/ 12 ноября 2009

О нескольких программах, использующих один и тот же сокет, смотрите опцию ReusePort в IO :: Socket :: INET. Это позволяет другим программам позднее прослушивать этот порт. Для получения дополнительной информации о повторном использовании, найдите «SO_REUSEPORT», который является именем опции библиотеки C.

См. Обсуждение здесь для получения дополнительной информации о масштабировании с использованием этой техники (если это ваше намерение): http://kerneltrap.org/mailarchive/linux-netdev/2008/8/7/2851754

4 голосов
/ 12 ноября 2009

Возможно ли, чтобы несколько серверов прослушивали один порт или несколько клиентов прослушивали один порт посредством программирования сокетов?

Это не имеет ничего общего с Perl: только одно приложение может прослушивать данный порт в любой данный момент времени.

Кроме того, если вы не реализуете собственный протокол, в Perl нет веских причин для работы с сокетами. Есть отличные модули для всех распространенных протоколов.

2 голосов
/ 12 ноября 2009
1 голос
/ 12 ноября 2009

Документ perlipc содержит краткое введение в использование сокетов с хорошим примером кода.

0 голосов
/ 13 ноября 2009

Я всегда указываю людям на IO :: Lambda . Это прекрасный элегантный способ работы с сокетами и файловыми дескрипторами любого типа.

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