The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"UDP Socket"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"UDP Socket"  
Сообщение от Alexious email(ok) on 27-Апр-07, 14:38 
Написал простой сокет для UDP пакетов. Под виндой все отлично работает

use strict;
use IO::Socket;
my($sock, $oldmsg, $newmsg, $hisaddr, $hishost, $MAXLEN, $PORTNO);
$MAXLEN = 1024;
$PORTNO = 137;
$sock= IO::Socket::INET->new(LocalPort=>$PORTNO, Proto=>'udp') or die "socket: $@";
while ($sock->recv($newmsg, $MAXLEN))
{
print $newmsg;
}

Пытаюсь запустить по UNIX но получаю ишибку всегда :

socket: IO::Socket::INET: Bad protocol 'udp' at UDP_recv2.pl line 9.

В чем дело?
-----------------------------------
Так же есть сервер

use Socket;
socket(SockHandle, PF_INET, SOCK_DGRAM, getprotobyname("udp"));
$HOSTNAME="tratata";
$ipaddr="175.37.10.50";
$PORTNO="137";
$MSG="HELP-HELP-HELP-HELP";
$ipaddr=inet_aton($HOSTNAME);
$portaddr=sockaddr_in($PORTNO, $ipaddr);
while (1) {
print "Send\n";
send(SockHandle,$MSG,0, $portaddr)==length($MSG)";
sleep 5;}

Программа вроде работает по UNIX но ничего не шлет в сеть. Подскажите где ошибки плиз.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

  • UDP Socket, NuINu, 16:37 , 27-Апр-07, (1)  
    • UDP Socket, Alexious, 16:42 , 27-Апр-07, (2)  
      • UDP Socket, vic, 17:11 , 27-Апр-07, (3)  
        • UDP Socket, Alexious, 17:21 , 27-Апр-07, (4)  
          • UDP Socket, Homewrecker, 22:54 , 27-Апр-07, (5)  
            • UDP Socket, Homewrecker, 22:56 , 27-Апр-07, (6)  
              • UDP Socket, Alexious, 10:17 , 28-Апр-07, (8)  
            • UDP Socket, Alexious, 10:16 , 28-Апр-07, (7)  
              • UDP Socket, NuINu, 14:34 , 28-Апр-07, (9)  
                • UDP Socket, Homewrecker, 15:48 , 28-Апр-07, (10)  
                  • UDP Socket, Alexious, 15:58 , 28-Апр-07, (11)  
                    • UDP Socket, NuINu, 16:39 , 28-Апр-07, (12)  

Сообщения по теме [Сортировка по времени, UBB]


1. "UDP Socket"  
Сообщение от NuINu (??) on 27-Апр-07, 16:37 
>Написал простой сокет для UDP пакетов. Под виндой все отлично работает
Не знаю почему у тебя не запускается. Может ты модуль не правильно установил? IO::Socket
?
У меня работает, только вывод не печатает,
наверное буфферизирует.
но если поставить:
print "msg:$newmsg\n";
все выводит.

Сервер тоже рабочий, только
send(SockHandle,$MSG,0, $portaddr)==length($MSG)";
не правильная лучше так
send(SockHandle,$MSG,0, $portaddr) or die("Send failed\n");

Да, я тестировал не под суперюзером и порт назначил 1370. может у тебя из за этого бага?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "UDP Socket"  
Сообщение от Alexious email(ok) on 27-Апр-07, 16:42 
Модуль не устанавливал. Использую стандартный. По прежнему при попытке компиляции приемника возникает ошибка socket: IO::Socket::INET: Bad protocol 'udp' . Причем если протокол поменять на tcp то все равно ошибка. Хренотень какая-то.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "UDP Socket"  
Сообщение от vic (??) on 27-Апр-07, 17:11 
>Модуль не устанавливал. Использую стандартный. По прежнему при попытке компиляции приемника возникает
>ошибка socket: IO::Socket::INET: Bad protocol 'udp' . Причем если протокол поменять
>на tcp то все равно ошибка. Хренотень какая-то.

каким пользователем работаешь?
если не рутом то тебе не разрешено открывать порты < 1024.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "UDP Socket"  
Сообщение от Alexious email(ok) on 27-Апр-07, 17:21 
нет не рутом, попробовал 1370, результат тот же
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "UDP Socket"  
Сообщение от Homewrecker (ok) on 27-Апр-07, 22:54 
Весьма странная ошибка.
Что пишет cat /etc/protocols | grep -i udp ?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "UDP Socket"  
Сообщение от Homewrecker (ok) on 27-Апр-07, 22:56 
>Весьма странная ошибка.
>Что пишет cat /etc/protocols | grep -i udp ?


Да, и права на него проверьте

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "UDP Socket"  
Сообщение от Alexious email(ok) on 28-Апр-07, 10:17 
>>Весьма странная ошибка.
>>Что пишет cat /etc/protocols | grep -i udp ?
>
>
>Да, и права на него проверьте
Да, вот с правами помоему засада. Кажись дело все в них. Будем думать. Спасибо!!!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "UDP Socket"  
Сообщение от Alexious email(ok) on 28-Апр-07, 10:16 
>Весьма странная ошибка.
>Что пишет cat /etc/protocols | grep -i udp ?

>cat /etc/protocols | grep -i udp
udp             17      UDP             # user datagram protocol

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "UDP Socket"  
Сообщение от NuINu (??) on 28-Апр-07, 14:34 
>>Весьма странная ошибка.
>>Что пишет cat /etc/protocols | grep -i udp ?
>
>>cat /etc/protocols | grep -i udp
>udp            
> 17      UDP    
>         # user
>datagram protocol
короче смотрим:
INET.pm
ищем: Bad protocol
видим после:
   if(@proto = getprotobyname($proto)) {
      $proto = $proto[2] || undef;
    }
    else {
      $@ = "Bad protocol '$proto'";
      return;
    }

тестируем: getprotobyname с разными параметрами, может у тебя udp вообще нет?
тестируем на перле и на си. библиотека libc ее перл динамически подгружает.
а дальше к ядру :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "UDP Socket"  
Сообщение от Homewrecker (ok) on 28-Апр-07, 15:48 

>тестируем: getprotobyname с разными параметрами, может у тебя udp вообще нет?

getprotobyname всего-лишь смотрит в /etc/protocols

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "UDP Socket"  
Сообщение от Alexious email(ok) on 28-Апр-07, 15:58 
>
>>тестируем: getprotobyname с разными параметрами, может у тебя udp вообще нет?
>
>getprotobyname всего-лишь смотрит в /etc/protocols

СПАСИБО ВСЕМ. ВЕ ДЕЛО БЫЛО В ПРАВАХ. ТЕПЕРЬ РАБОТАЕТ

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "UDP Socket"  
Сообщение от NuINu (??) on 28-Апр-07, 16:39 
>>
>>>тестируем: getprotobyname с разными параметрами, может у тебя udp вообще нет?
>>
>>getprotobyname всего-лишь смотрит в /etc/protocols
>
>СПАСИБО ВСЕМ. ВЕ ДЕЛО БЫЛО В ПРАВАХ. ТЕПЕРЬ РАБОТАЕТ
:-)


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру