banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành Windows Nhờ giúp đỡ về lập trình Perl  XML
  [Programming]   Nhờ giúp đỡ về lập trình Perl 26/08/2007 05:37:30 (+0700) | #1 | 81244
LimitExceed
Member

[Minus]    0    [Plus]
Joined: 10/09/2006 19:49:05
Messages: 23
Location: Số 1 Đại Cồ Việt
Offline
[Profile] [PM]
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=<>smilie{
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 ạ?
[Up] [Print Copy]
  [Question]   Nhờ giúp đỡ về lập trình Perl 26/08/2007 05:47:00 (+0700) | #2 | 81246
L0ng3ta
Locked

[Minus]    0    [Plus]
Joined: 17/09/2002 13:47:43
Messages: 264
Location: Địa cầu
Offline
[Profile] [PM]

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=<>smilie{
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 đỏ
[Up] [Print Copy]
  [Question]   Nhờ giúp đỡ về lập trình Perl 26/08/2007 05:57:23 (+0700) | #3 | 81248
[Avatar]
K4i
Moderator

Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
[Profile] [PM]

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=<>smilie{
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 smilie
Sống là để không chết chứ không phải để trở thành anh hùng
[Up] [Print Copy]
  [Question]   Nhờ giúp đỡ về lập trình Perl 26/08/2007 07:32:28 (+0700) | #4 | 81266
[Avatar]
SuperChicken
Elite Member

[Minus]    0    [Plus]
Joined: 11/07/2006 18:31:27
Messages: 635
Location: bottom of hell
Offline
[Profile] [PM]
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 :lolsmilie
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 đó.
[Up] [Print Copy]
  [Question]   Nhờ giúp đỡ về lập trình Perl 27/08/2007 06:12:50 (+0700) | #5 | 81455
LimitExceed
Member

[Minus]    0    [Plus]
Joined: 10/09/2006 19:49:05
Messages: 23
Location: Số 1 Đại Cồ Việt
Offline
[Profile] [PM]

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
[Up] [Print Copy]
  [Question]   Nhờ giúp đỡ về lập trình Perl 27/08/2007 09:49:47 (+0700) | #6 | 81480
L0ng3ta
Locked

[Minus]    0    [Plus]
Joined: 17/09/2002 13:47:43
Messages: 264
Location: Địa cầu
Offline
[Profile] [PM]

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.
[Up] [Print Copy]
  [Question]   Nhờ giúp đỡ về lập trình Perl 27/08/2007 10:44:14 (+0700) | #7 | 81498
[Avatar]
gsmth
Elite Member

[Minus]    0    [Plus]
Joined: 15/02/2007 13:25:36
Messages: 749
Offline
[Profile] [PM] [WWW] [Yahoo!]

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
[Up] [Print Copy]
  [Question]   Nhờ giúp đỡ về lập trình Perl 27/08/2007 11:12:58 (+0700) | #8 | 81506
[Avatar]
K4i
Moderator

Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
[Profile] [PM]
[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 smilie

Host, port là tham số truyền vào cho chương trình smilie). Hy vọng là bạn kô hỏi thêm nữa nhé smilie
Sống là để không chết chứ không phải để trở thành anh hùng
[Up] [Print Copy]
  [Programming]   Nhờ giúp đỡ về lập trình Perl 20/09/2009 13:30:55 (+0700) | #9 | 193506
vietechno
Member

[Minus]    0    [Plus]
Joined: 28/06/2007 20:14:28
Messages: 2
Offline
[Profile] [PM]
#!/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=<>smilie{
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";
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 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|