Avatar billede Lasse Novice
06. juni 2001 - 01:04 Der er 2 løsninger

bidirectionel socket

Jeg har et program som laver en socket forbindelse til mit perlscript. Det er alt sammen godt. Jeg modtager det jeg skal osv. Men på samme forbindelse er det meningen at jeg skal kunne sende noget tilbage!!! Er det muligt? Hvis serveren sender noget, afsluttes det med en null terminering.

Jeg har følgende kode:

use IO::Socket;

$sock = IO::Socket::Inet(Localhost=>localhost,LocalPort=>9000,Proto=>\'tcp\',Listen=>5);
die \"No connection\" unless($sock);

while($sock2 = $sock->accecpt()) { #accepts connection from client
while(defined($buf = <$sock2>)) { #read a line from client
print $buf;
}
}
close ($sock);
Avatar billede jespernaur Nybegynder
06. juni 2001 - 18:32 #1
Du burde kunne gøre noget i retning af:

use IO::Socket;

$sock = IO::Socket::Inet(Localhost=>localhost,LocalPort=>9000,Proto=>\'tcp\',Listen=>5);
die \"No connection\" unless($sock);

while($sock2 = $sock->accecpt()) { #accepts connection from client
  while(defined($buf = <$sock2>)) { #read a line from client
      print $buf;
      # figure out what to return and place it in $retbuf
      print $sock2 $retbuf . \"\\000\" ; # write $retbuf back to client, with a NULL appended
  }
}
close ($sock);

Alternativt kan du bruge syswrite i stedet for print:

syswrite $sock2, $retbuf . \"\\000\" , length($retbuf)+1;

Mvh
Jesper Naur
Avatar billede Lasse Novice
07. juni 2001 - 23:27 #2
ahhh, jeg havde glemt at jeg havde stillet spg. herinde... jeg har selv fundet ud af det... så jeg tager lige halvdelen... men takker for svaret.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester