[Programming] Nhờ giúp đỡ về lập trình Perl |
26/08/2007 05:37:30 (+0700) | #1 | 81244 |
LimitExceed
Member
|
0 |
|
|
Joined: 10/09/2006 19:49:05
Messages: 23
Location: Số 1 Đại Cồ Việt
Offline
|
|
Em đã cài Perl và chay đc đoạn code hello.pl như thế này bằng browser
#!c:\perl\bin\perl.exe
print "Content-type: text/html\n\n";
print "Hello, world!";
Nhưng sau đó lập trình socket thì ko thể chạy đc,báo lỗi.Đoạn code như này:
#!/usr/local/bin/perl
# file:tcp_echo_cli1.pl
# usage:tcp_echo_cli1.pl [host] [port]
# echo client,tcp version
use strict;
use Socket;
use IO::Handle;
my ($byte_out,$byte_in)=(0,0);//declare globals,create 2 global variables for keeping track of the number of bytes we send and receive.
my $host =shift || 'localhost' ;
my $port =shift ||getservbyname('echo','tcp');
my $protocol = getprotobyname('tcp') ;
$host =inet_aton($host) or die "$host :unknown host";
socket (SOCK,AF_INET,SOCK_STREAM,$protocol) or die "socket() failed:$!";
my $dest_addr=sockaddr_in($port,$host)
connect (SOCK,$dest_addr) or die "connect() failed: $!";
SOCK ->autoflush(1);
while (my $msg_out=<>{
print SOCK $msg_out;
my $msg_in=<SOCK>;
print $msg_in;
$bytes_out +=length($msg_out);
$bytes_in +=length($msg_in);
}
close SOCK
print STDERR "bytes_sent=$bytes_out,bytes_received=$bytes_in\n";
Vậy em phải làm gì để chạy đc code nay??Và có công cụ phát triển PERL nào giống PHP Expert hố trợ cho PHP ko ạ? |
|
|
|
|
[Question] Nhờ giúp đỡ về lập trình Perl |
26/08/2007 05:47:00 (+0700) | #2 | 81246 |
L0ng3ta
Locked
|
0 |
|
|
Joined: 17/09/2002 13:47:43
Messages: 264
Location: Địa cầu
Offline
|
|
LimitExceed wrote:
Em đã cài Perl và chay đc đoạn code hello.pl như thế này bằng browser
#!c:\perl\bin\perl.exe
print "Content-type: text/html\n\n";
print "Hello, world!";
Nhưng sau đó lập trình socket thì ko thể chạy đc,báo lỗi.Đoạn code như này:
#!/usr/local/bin/perl
# file:tcp_echo_cli1.pl
# usage:tcp_echo_cli1.pl [host] [port]
# echo client,tcp version
use strict;
use Socket;
use IO::Handle;
my ($byte_out,$byte_in)=(0,0);//declare globals,create 2 global variables for keeping track of the number of bytes we send and receive.
my $host =shift || 'localhost' ;
my $port =shift ||getservbyname('echo','tcp');
my $protocol = getprotobyname('tcp') ;
$host =inet_aton($host) or die "$host :unknown host";
socket (SOCK,AF_INET,SOCK_STREAM,$protocol) or die "socket() failed:$!";
my $dest_addr=sockaddr_in($port,$host)
connect (SOCK,$dest_addr) or die "connect() failed: $!";
SOCK ->autoflush(1);
while (my $msg_out=<>{
print SOCK $msg_out;
my $msg_in=<SOCK>;
print $msg_in;
$bytes_out +=length($msg_out);
$bytes_in +=length($msg_in);
}
close SOCK
print STDERR "bytes_sent=$bytes_out,bytes_received=$bytes_in\n";
Vậy em phải làm gì để chạy đc code nay??Và có công cụ phát triển PERL nào giống PHP Expert hố trợ cho PHP ko ạ?
Bạn hãy để ý xem 2 dòng tôi bôi đậm có gì khác nhau ?? tại sau cái trên chạy và cái dưới không chạy.
Thêm nữa là đoạn code dưới muốn chạy thì chạy như thế nào để ý tiếp cái mầu đỏ |
|
|
|
|
[Question] Nhờ giúp đỡ về lập trình Perl |
26/08/2007 05:57:23 (+0700) | #3 | 81248 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
LimitExceed wrote:
Em đã cài Perl và chay đc đoạn code hello.pl như thế này bằng browser
#!c:\perl\bin\perl.exe
print "Content-type: text/html\n\n";
print "Hello, world!";
Nhưng sau đó lập trình socket thì ko thể chạy đc,báo lỗi.Đoạn code như này:
#!/usr/local/bin/perl
# file:tcp_echo_cli1.pl
# usage:tcp_echo_cli1.pl [host] [port]
# echo client,tcp version
use strict;
use Socket;
use IO::Handle;
my ($byte_out,$byte_in)=(0,0);//declare globals,create 2 global variables for keeping track of the number of bytes we send and receive.
my $host =shift || 'localhost' ;
my $port =shift ||getservbyname('echo','tcp');
my $protocol = getprotobyname('tcp') ;
$host =inet_aton($host) or die "$host :unknown host";
socket (SOCK,AF_INET,SOCK_STREAM,$protocol) or die "socket() failed:$!";
my $dest_addr=sockaddr_in($port,$host)
connect (SOCK,$dest_addr) or die "connect() failed: $!";
SOCK ->autoflush(1);
while (my $msg_out=<>{
print SOCK $msg_out;
my $msg_in=<SOCK>;
print $msg_in;
$bytes_out +=length($msg_out);
$bytes_in +=length($msg_in);
}
close SOCK
print STDERR "bytes_sent=$bytes_out,bytes_received=$bytes_in\n";
Vậy em phải làm gì để chạy đc code nay??Và có công cụ phát triển PERL nào giống PHP Expert hố trợ cho PHP ko ạ?
đọc lại cú pháp dịch perl đi. Code perl mà kô biết dịch thì bó tay |
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Nhờ giúp đỡ về lập trình Perl |
26/08/2007 07:32:28 (+0700) | #4 | 81266 |
|
SuperChicken
Elite Member
|
0 |
|
|
Joined: 11/07/2006 18:31:27
Messages: 635
Location: bottom of hell
Offline
|
|
Hì, hồi mới thấy Perl, mình cũng cứ ngỡ sau # sẽ là comment, ai ngờ dòng đầu lại là dòng quan trọng nhất :lol
Dòng đầu chính là absolute path đến file thực thi perl đó bạn, do đoạn code bạn tìm thấy dùng cho linux, nhưng bạn lại cài perl trên win. vậy chỉ cần thay cái path cho đúng với path trên win thôi, ngoài ra (như L0ng3ta đã nói) nó cũng nói rõ cách dùng là phải truyền vào 2 param đó. |
|
|
|
|
[Question] Nhờ giúp đỡ về lập trình Perl |
27/08/2007 06:12:50 (+0700) | #5 | 81455 |
LimitExceed
Member
|
0 |
|
|
Joined: 10/09/2006 19:49:05
Messages: 23
Location: Số 1 Đại Cồ Việt
Offline
|
|
Bạn hãy để ý xem 2 dòng tôi bôi đậm có gì khác nhau ?? tại sau cái trên chạy và cái dưới không chạy.
Thêm nữa là đoạn code dưới muốn chạy thì chạy như thế nào để ý tiếp cái mầu đỏ
Theo em hiểu thì như vậy là trong đoạn code thứ 2 sai đường dẫn=>sửa lại là #!c:\perl\bin\perl.exe ;
Còn ý thứ 2 thì em chưa hiểu,anh chỉ cho em cái cần sửa đi
|
|
|
|
|
[Question] Nhờ giúp đỡ về lập trình Perl |
27/08/2007 09:49:47 (+0700) | #6 | 81480 |
L0ng3ta
Locked
|
0 |
|
|
Joined: 17/09/2002 13:47:43
Messages: 264
Location: Địa cầu
Offline
|
|
LimitExceed wrote:
Bạn hãy để ý xem 2 dòng tôi bôi đậm có gì khác nhau ?? tại sau cái trên chạy và cái dưới không chạy.
Thêm nữa là đoạn code dưới muốn chạy thì chạy như thế nào để ý tiếp cái mầu đỏ
Theo em hiểu thì như vậy là trong đoạn code thứ 2 sai đường dẫn=>sửa lại là #!c:\perl\bin\perl.exe ;
Còn ý thứ 2 thì em chưa hiểu,anh chỉ cho em cái cần sửa đi
Nếu bạn thực sự hiểu rõ đoạn code thứ hai dùng để làm gì và bạn hãy phân tích đoạn code đó cho mọi người cùng rõ thì tôi sẽ sẵn sàng giúp đỡ bạn. Còn nếu không thì coi như tôi xin lỗi bạn vậy. |
|
|
|
|
[Question] Nhờ giúp đỡ về lập trình Perl |
27/08/2007 10:44:14 (+0700) | #7 | 81498 |
|
gsmth
Elite Member
|
0 |
|
|
Joined: 15/02/2007 13:25:36
Messages: 749
Offline
|
|
LimitExceed wrote:
Vậy em phải làm gì để chạy đc code nay??Và có công cụ phát triển PERL nào giống PHP Expert hố trợ cho PHP ko ạ?
1/ Run:
Code:
Start -> Run -> cmd -> OK
C:>perl file_xyz.pl
2/ http://activestate.com/store/productdetail.aspx?prdGuid=81fbce82-6bd5-49bc-a915-08d58c2648ca |
|
|
|
|
[Question] Nhờ giúp đỡ về lập trình Perl |
27/08/2007 11:12:58 (+0700) | #8 | 81506 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
[color="red"]usage:tcp_echo_cli1.pl [host] [port][/color]
==> cú pháp chạy rõ như ban ngày thế này rồi
Host, port là tham số truyền vào cho chương trình ). Hy vọng là bạn kô hỏi thêm nữa nhé |
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Programming] Nhờ giúp đỡ về lập trình Perl |
20/09/2009 13:30:55 (+0700) | #9 | 193506 |
vietechno
Member
|
0 |
|
|
Joined: 28/06/2007 20:14:28
Messages: 2
Offline
|
|
#!/usr/local/bin/perl
# file:tcp_echo_cli1.pl
# usage:tcp_echo_cli1.pl [host] [port]
# echo client,tcp version
use strict;
use Socket;
use IO::Handle;
my ($byte_out,$byte_in)=(0,0);//declare globals,create 2 global variables for keeping track of the number of bytes we send and receive.
my $host =shift || 'localhost' ;
my $port =shift ||getservbyname('echo','tcp');
my $protocol = getprotobyname('tcp') ;
$host =inet_aton($host) or die "$host :unknown host";
socket (SOCK,AF_INET,SOCK_STREAM,$protocol) or die "socket() failed:$!";
my $dest_addr=sockaddr_in($port,$host)
connect (SOCK,$dest_addr) or die "connect() failed: $!";
SOCK ->autoflush(1);
while (my $msg_out=<>{
print SOCK $msg_out;
my $msg_in=<SOCK>;
print $msg_in;
$bytes_out +=length($msg_out);
$bytes_in +=length($msg_in);
}
close SOCK
print STDERR "bytes_sent=$bytes_out,bytes_received=$bytes_in\n";
|
|
|
Users currently in here |
1 Anonymous
|
|
Powered by JForum - Extended by HVAOnline
hvaonline.net | hvaforum.net | hvazone.net | hvanews.net | vnhacker.org
1999 - 2013 ©
v2012|0504|218|
|
|