Schrift
[thread]4399[/thread]

Socket Binary übertragung (Seite 2)

Leser: 1


<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten
esskar
 2006-02-01 14:44
#37074 #37074
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
schreiben bleibt wie gehabt (vielleicht noch binmode SOCKET; setzen - bin mir da aber gard nicht ganz sicher)

und dann lesen

Code: (dl )
1
2
3
4
5
6
7
my $message = '';
my $buffer = '';
my $maxLen = 4096;
while(my $read = read(SOCKET, $buffer, $maxLen)) {
$message .= $buffer;
last if $read < $maxLen;
}
tuxilein
 2006-02-01 15:58
#37075 #37075
User since
2006-01-27
19 Artikel
BenutzerIn
[default_avatar]
Danke,

nun aber mit send und recv hab i ihrgendwie auch kein glück ohne base64 kommt das file selbst mit binmode SOCKET kleiner an:

recv 4352 Bytes
send 9628 Bytes

mit base64 geht es über send/recv\n\n

<!--EDIT|tuxilein|1138802332-->
esskar
 2006-02-01 16:17
#37076 #37076
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
benutzt du die recv funktion genauso wie mein read beispiel?
tuxilein
 2006-02-01 16:27
#37077 #37077
User since
2006-01-27
19 Artikel
BenutzerIn
[default_avatar]
nein die recv von socket $socket->recv .....
esskar
 2006-02-01 16:54
#37078 #37078
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=tuxilein,01.02.2006, 15:27]nein die recv von socket $socket->recv .....[/quote]
okay...

Code: (dl )
1
2
3
4
5
6
7
my $message = '';
my $buffer = '';
my $maxLen = 4096;
while(my $read = $socket->recv($buffer, $maxLen)) {
$message .= $buffer;
last if $read < $maxLen;
}
tuxilein
 2006-02-01 16:57
#37079 #37079
User since
2006-01-27
19 Artikel
BenutzerIn
[default_avatar]
jo so schauts aus!

und macht faxen!

vieleicht mal ne nacht drüber schlafen!\n\n

<!--EDIT|tuxilein|1138805874-->
esskar
 2006-02-01 18:51
#37080 #37080
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
gib mal $read innerhalb der scheife aus!
tuxilein
 2006-02-02 12:06
#37081 #37081
User since
2006-01-27
19 Artikel
BenutzerIn
[default_avatar]
so,

recv gibt als return die IP und den Port wo der CLient sich Connectet zurück.

mit dem read befehl, pasirt nicht wirklich was, wenn nicht die anzahl der bytes zurückkommen.
esskar
 2006-02-02 12:09
#37082 #37082
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
recv ist definitity die falsche version.
poste mal code, damit ich sehe, was du falsch machst!
tuxilein
 2006-02-02 12:36
#37083 #37083
User since
2006-01-27
19 Artikel
BenutzerIn
[default_avatar]
recv:
Code (perl): (dl )
1
2
3
4
5
6
7
8
use constant MAXLEN => 1500;
.....
my $mesg';
my $buff;
while(my $read = $self->{csocket}->recv($buff, MAXLEN)) {
    $mesg.= $buff;
    last if( $read < MAXLEN );
}


read:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
use constant MAXLEN => 1500;
......
my $mesg';
my $buff;
my $conn = $self->{csocket};
while( my $read = read( $conn, $buff, MAXLEN ) ) {
    $mesg.= $buff;
    last if( $read < MAXLEN );
}
\n\n

<!--EDIT|tuxilein|1138876704-->
<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten



View all threads created 2006-01-30 12:13.