powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl работа с сокетами по udp
2 сообщений из 2, страница 1 из 1
Perl работа с сокетами по udp
    #38773950
Mirabilis_ja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На удаленной машине работает echo udp сервер на перле, который возвращает присланные ему пакеты обратно
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
#!/usr/bin/perl
use IO::Socket::INET;

# flush after every write
$| = 1;

my ($socket, $received_data);

$socket = new IO::Socket::INET (
	LocalPort => defined($ARGV[0]) ? $ARGV[0] : '1098',
	Proto => 'udp'
) or die "ERROR in Socket Creation : $! \n";

while(1) {
	$socket->recv($recieved_data, 100);
	$socket->send($recieved_data);
}

$socket->close();



Пишу клиент, который и будет посылать пакеты эхо серверу и получать ответ.
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
use Socket;
$host="IP-adress";
$port="1098";
socket(SOCK, PF_INET, SOCK_DGRAM, getprotobyname('udp'));
$iaddr = inet_aton($host);
$paddr = sockaddr_in($port, $iaddr);
connect(SOCK, $paddr);
send(SOCK, "1", 0);
@data=<SOCK>;
close(SOCK);
print @data;



Но клиент не делает то что нужно. В чем моя ошибка?
...
Рейтинг: 0 / 0
Perl работа с сокетами по udp
    #38774227
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка в @data=<SOCK>.
Ты пытаешься читать из потока, а UDP это не поток.
В клиенте тоже надо использовать send()/recv().
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl работа с сокетами по udp
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]