Kom ihåg mig?
Home Menu

Menu


Perl + Sockets + SSL

Ämnesverktyg Visningsalternativ
Oläst 2005-02-18, 15:04 #1
jonasaskas jonasaskas är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2004
Inlägg: 12
jonasaskas jonasaskas är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2004
Inlägg: 12
Hej,

Har rivit mitt (numera gråa...) hår ett tag nu, för att försöka initiera kommunikation över sockets i Perl, men får inte till det. Någon vänlig själ som kan bidra med tips?

Det jag skall göra är att i Perl anropa en applikation på en annan server (https), och därifrån erhålla ett svar som jag sparar till en variabel.

Har försökt med t.ex. följande utan lyckat resultat;

Kod:
#!/usr/bin/perl

use Socket;

&Oppna_Socket);

sub Oppna_Socket()
{
    my $server_namn = "secure.server.se";
    my $port = "https";
    my $sida = "/skript.php?variabler";

    $port = getservbyname($port, 'tcp') if $port !~ /^[0-9]/;
    socket (SOCKET, PF_INET, SOCK_STREAM, 0) or die "Socketfel: $!";
    connect(SOCKET, sockaddr_in($port, inet_aton($server_namn)));

    select SOCKET; $| = 1; select STDOUT;

    print SOCKET "GET ${sida} HTTP/1.0\n\n";
    $Las_In_Text .= $rad while $rad = <SOCKET>;
    close(SOCKET);

    print "Content-type: text/plain\n\n";
    print "${Las_In_Text}\n\n";
}
Har även testat att använda IO::Socket::INET utan lyckat resultat.

Konkret kodexemepl uppskattas!

Mvh,
Jonas
jonasaskas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-02-18, 15:19 #2
Thomass avatar
Thomas Thomas är inte uppkopplad
Administratör
 
Reg.datum: May 2003
Inlägg: 3 901
Thomas Thomas är inte uppkopplad
Administratör
Thomass avatar
 
Reg.datum: May 2003
Inlägg: 3 901
Kod:
my $port = "https";
Borde väl rimligtvis vara
Kod:
my $port = "443";
Du gör ju senare en kontroll så att variabeln $port bara blir getservbyname($port, 'tcp') om $port inte är numerisk.
Kod:
if $port !~ /^[0-9]/;
Thomas
Thomas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-02-18, 15:24 #3
kers kers är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Nov 2004
Inlägg: 526
kers kers är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Nov 2004
Inlägg: 526
Finns det någon anledning till att du använder socketsmodulen rakt av ? Om du kan installera egna perlmoduler så är en enkel lösning att köra LWP (http://lwp.linpro.no/lwp/), med LWP::Simple så är det jättesmidigt. Kan dras ner från CPAN ( perl -MCPAN -e 'install LWP::Simple' alt dra ner tarbollen och installera själv) och är väldigt stabilt, använt och genomarbetat.

kodexempel:

Kod:
use LWP::Simple;
$sidan= get("https://www.server.co/script.php?alsladlasd");
if ($sidan) 
 *{
 * * print $sidan;
 *}
 *else 
 *{
 * * print "kunde inte ladda sidan";
 *}
kers är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-02-18, 15:27 #4
Thomass avatar
Thomas Thomas är inte uppkopplad
Administratör
 
Reg.datum: May 2003
Inlägg: 3 901
Thomas Thomas är inte uppkopplad
Administratör
Thomass avatar
 
Reg.datum: May 2003
Inlägg: 3 901
Jag rekommenderar också LWP.

Thomas
Thomas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-02-21, 08:33 #5
jonasaskas jonasaskas är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2004
Inlägg: 12
jonasaskas jonasaskas är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2004
Inlägg: 12
Tack för tipset om LWP, skall kolla på det.
jonasaskas är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 16:49.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017