Jump to content

[Perl] Could not connect Meldung beim Beispiel


Recommended Posts

Posted

Hallo zusammen,

ich wollte grade mal schauen, ob ich mein Projekt mit Perl umgesetzt bekomme. Dafür habe ich das Example für den Motion Detector aufgerufen und erhalte folgende Meldung:

Could not connect to localhost:4223: Illegal seek at ./example_callback.pl line 25.

 

Brickd Logfile:

2014-07-21 15:14:20.719929 <I> <network|network.c:105> Added new client (S: 22, T: plain, P: 127.0.0.1, A: disabled)

2014-07-21 15:14:20.720022 <I> <network|client.c:242> Client (S: 22, T: plain, P: 127.0.0.1, A: disabled) disconnected by peer

 

Das Ganze auf einem Mac OS X 10.9.4

Perl Version 5.16.2

Das CPAN Paket wurde nicht installiert. Es wurden die Sourcen im selben Ordner abgelegt wie das Beispiel.

 

Die UID ist korrekt und bis auf die UID habe ich im Example auch nichts angepasst.

 

Kennt jemand das Problem und kann mir da helfen?

 

THX

 

Posted

Hrm, in Tinkerforge/IPConnection.pm stehen an drei Stellen Methodenaufruf mit MSG_NOSIGNAL als letzten Parameter. Ändere mal bitte alle drei ab indem du diesen Parameter entfernst und teste dann nochmal. Hier ein Beispiel:

 

Vorher:

 

$rc = $self->_get_local_socket()->send($packet, MSG_NOSIGNAL);

 

Nachher:

 

$rc = $self->_get_local_socket()->send($packet);

Posted

Hi photron,

 

habe ich gemacht und erhalte folgendes:

 

./example_callback.pl

Thread 2 terminated abnormally: Can't locate object method "dequeue_timed" via package "Thread::Queue" at Tinkerforge/IPConnection.pm line 1669.

Press any key to exit...

Motion Detected

Detection Cycle Ended (next detection possible in ~3 seconds)

 

Funktioniert zwar, aber die 1. Zeile macht mir Sorgen ;-)

Posted

Interessant! MSG_NOSIGNAL macht also ein Problem.

 

Die andere Meldung kommt daher, dass dein Thread::Queue Module nicht neu genug ist. Du brauchst mindestens Version 3.02. Das solltest du über CPAN updaten können:

 

sudo cpan Thread::Queue

Posted

Teste mal bitte diese kleine Script, es sollte "MSG_NOSIGNAL does NOT exist" ausgeben und sonst keine Fehler melden:

 

use strict;
use warnings;
use Socket qw(MSG_NOSIGNAL);

if (defined(&{"MSG_NOSIGNAL"})) {
    print "MSG_NOSIGNAL does exist\n";
}
else {
    print "MSG_NOSIGNAL does NOT exist\n";
}

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...