Leser: 6
![]() |
|< 1 2 3 4 >| | ![]() |
36 Einträge, 4 Seiten |
1 2 3 4 5 6 7 8 9 10
if (IO::Select->new($s_socket)->can_read(2)) { $s_socket->recv($s_output, 1024); print $s_output; # print "yes"; # while (my $rc = $s_socket->recv($s_output, 1024) ) { # print $s_output; # $buffer .= $s_output; # } }
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 29
#!/usr/bin/perl use strict; use warnings; use IO::Socket::INET; print "create socket..\n"; my $sock = IO::Socket::INET->new( 'PeerAddr' => '***.***.***.***', 'PeerPort' => '27501', 'Proto' => 'udp', ); print "send data request..\n"; $sock->send( "\xff\xffZ\xff" ); print "answer:\n"; while ( my $rc = $sock->recv( my $buffer, 1024 ) ) { print $buffer; } # while <STDIN>; __END__
H3llGhost+2008-06-07 22:30:05--Code (perl): (dl )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 29 30 31 32 33 34#!/usr/bin/perl use strict; use warnings; use IO::Socket; use IO::Select; use IO::Handle; my $g_masterserver_address = "*.*.*.*"; my $g_masterserver_port = "27501"; my $timeout = 0; my $address = $g_masterserver_address; my $port = $g_masterserver_port; my $dest = sockaddr_in($port, inet_aton($address)); my ($rin, $rout, $test); my $msg = chr(0xff).chr(0xff)."Z".chr(0xff); my $s_socket; my $proto = getprotobyname('udp'); socket($s_socket, AF_INET, SOCK_DGRAM, $proto); my $bytes = send($s_socket, $msg, 0, $dest); print("sent $bytes bytes to '$address:$port'"); my $buffer = ''; my $s_output; while (my $rc = $s_socket->recv($s_output, 1024) ) { print $s_output; $buffer .= $s_output; } exit(0);
Gast+2008-06-10 11:54:58--
Danke für die IP-Adresse. Schön zu wissen, dass dort kein Paketfilter aktiv ist...
Wenn das nächste mal dieser Port offen ist, werd ich deinen Server erstmal
lahmlegen, denn $buffer kann ja wachsen bis dein Server aus allen nähten
platzt :D
Gast+2008-06-09 13:46:03--Also an deiner Stelle würde ich IO::Socket::INET verwenden, im Prinzip sollte folgendes funktionieren:
Code (perl): (dl )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 29#!/usr/bin/perl use strict; use warnings; use IO::Socket::INET; print "create socket..\n"; my $sock = IO::Socket::INET->new( 'PeerAddr' => '***.***.***.***', 'PeerPort' => '27501', 'Proto' => 'udp', ); print "send data request..\n"; $sock->send( "\xff\xffZ\xff" ); print "answer:\n"; while ( my $rc = $sock->recv( my $buffer, 1024 ) ) { print $buffer; } # while <STDIN>; __END__
Auf timeouts wird hier nicht reagiert, kannste aber schnell nachrüsten.
MfG
//ModEdit GwenDragon: IP anonymisiert
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
29
30
#!/usr/bin/perl
use strict;
use warnings;
use IO::Socket::INET;
print "create socket..\n";
my $sock = IO::Socket::INET->new(
'PeerAddr' => '*.*.*.*',
'PeerPort' => '27501',
'Proto' => 'udp',
);
print "send data request...\n";
my $msg = chr(0xff).chr(0xff)."Z".chr(0xff);
my $bytes = $sock->send($msg);
print "send $bytes bytes ...\n\n";
print "answer:\n";
while ( my $rc = $sock->recv( my $buffer, 1024 ) )
{
print $buffer;
} # while
<STDIN>;
__END__
![]() |
|< 1 2 3 4 >| | ![]() |
36 Einträge, 4 Seiten |