2009-11-21 3 views
1

У меня есть сценарий, который работает на сервере, и я хочу, чтобы он теперь отправлял сообщения на мой компьютер. Я хочу отправить TCP или UDP-сообщения на какой-либо порт.Как подключиться к удаленному компьютеру через TCP и UDP с помощью Perl?

Каков наилучший способ сделать это (учебник будет замечательным)?

И есть ли какая-то клиентская программа, которую я могу запустить на своем ПК, которая будет слушать локальный порт для сообщений?

ответ

0

Существует много способов сделать это. Один из самых простых заключается в том, чтобы ваша программа отправила ваш электронный адрес. В Perl вы можете использовать, например, Email::Send. Другие способы включают сокеты или доступ к вашей веб-серверу на вашем ПК. Это зависит от того, какие объекты вы хотите использовать. Обычно я использую команду ssh для доступа к другим компьютерам по сети.

+0

Я новичок в Perl, и у нас нет сервера smtp на этом сервере. –

+0

Не совсем понятно, что вы хотите сделать, поэтому я не могу дать ясный ответ. – 2009-11-21 08:54:14

+0

Я хочу отправить tcp или udp массаж в какой-то порт. –

0

Вы можете использовать Net Send, если ваш на окнах, запись «Net Send Help» для получения дополнительной информации в CMD я не знаю Perl, но запустить CMD Net Send Message Computer

Убедитесь Тхет сеть сервис отправки является работает ... google it для получения дополнительной информации.

+0

Net Send заблокирован в сети нашей компании –

+0

И на sp3 по умолчанию заблокирован –

+0

Стоит нарисовать: P – Peter

8

Клиент может отправить TCP и UDP сообщения, используя сокет, например:

use IO::Socket; 
my $socket = IO::Socket::INET->new(PeerAddr => 'theserver', 
    PeerPort => '1234', Proto => 'tcp', Type => SOCK_STREAM); 
print $socket "Hello server!"; 
close($socket); 

сервер должен прослушивать порт и принимать сообщения, поступающие на него:

my $socket = new IO::Socket::INET (LocalHost => 'hostname', 
    LocalPort => '1234', Proto => 'tcp', Listen => 1, Reuse => 1); 
my $incoming = $sock->accept(); 
while(<$incoming>) { 
    print $_; 
} 
close($incoming); 

Это только верхушка айсберга, но, надеюсь, это поможет вам начать.

+0

Знаете ли вы, что какой-нибудь портвейер, который может слушать мой порт? nНе тяжелые вещи, такие как wirehark ... –

+1

Port sniffers отображает сетевой трафик, но они фактически не слушают. Существует утилита netcat, которая может слушать, например, 'nc -l -p 1234' http://www.catonmat.net/blog/unix-utilities-netcat/ – Andomar

2

Начинать с чтения документации perlipc - содержит примеры простых серверов и клиентов с множеством очень важных дополнений (например, как правильно демонировать).

1

Хотя немного устарел, вы хотите найти копию от Network Programming with Perl от Lincoln Stein. Кроме того, посмотрите на модули Perl с Socket в своих именах.

Смежные вопросы