Автор Тема: Неблокирующий сокет в Windows.  (Прочитано 5145 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
Неблокирующий сокет в Windows.
« : 27 Января 2003, 16:14:54 »
Привет все.
На юниксе это работает:

use Socket;
use Fcntl qw(F_GETFL F_SETFL O_NONBLOCK);

...

socket(S,PF_INET,SOCK_DGRAM,getprotobyname("udp")) || die "socket: $!";
$portaddr=sockaddr_in($port,inet_aton($zielIP));

$flags=fcntl(S,F_GETFL,0);
fcntl(S,F_SETFL,$flags | O_NONBLOCK);

for ($i=0;$i<=$timeOut;$i++)
{  $answer=recv(S,$msg,350,0);
   last if (length($msg) || $answer);
   sleep 1;
}


Пытаюсь выполнить под Windows - выдаёт ошибку:
Your vendor has not defined Fcntl macro F_GETFL, used at script.pl line 28.

Чему же этот F_GETFL в виндах равен?
И как вообще неблокирующий сокет под Виндами на Перле открыть?
Большое спасибо.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Неблокирующий сокет в Windows.
« Ответ #1 : 27 Января 2003, 16:35:45 »
Странно. А подробнее о системе и версии Fcntl?
The documentations is your friend

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Неблокирующий сокет в Windows.
« Ответ #2 : 27 Января 2003, 16:40:27 »
The documentations is your friend

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
Неблокирующий сокет в Windows.
« Ответ #3 : 27 Января 2003, 19:08:17 »
NeoNox
Цитировать
Почитай и посмотри код
http://archive.develooper.com/perl5...g/msg62779.html

Спасибо, это помогло:

my $set_it = "1";
ioctl(S, 0x80000000 | (4 << 16) | (ord(\'f\') << 8) | 126, $set_it);

Оффлайн chir

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 1
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
неблокирующие сокеты в perl
« Ответ #4 : 27 Октября 2005, 19:13:48 »
То, что тебе помогло не очень помогло мне. Знаешь ли ты еще пути преодоления проблемы? Заранее спасибо.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Неблокирующий сокет в Windows.
« Ответ #5 : 27 Октября 2005, 19:49:36 »
Какая ошибка, какие версии модулей и перл, какая операционная система и ее версия, это все я должен угадать?
The documentations is your friend

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28