Chinaunix首页 | 论坛 | 博客
  • 博客访问: 370018
  • 博文数量: 61
  • 博客积分: 2451
  • 博客等级: 上尉
  • 技术积分: 650
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-06 21:24
文章分类

全部博文(61)

文章存档

2012年(1)

2011年(44)

2010年(16)

分类: LINUX

2011-04-02 13:52:38

echo 服务基于TCP 端口号 7
可以通过netstat  -ant 查看没有开启
red hat 上 默认没有开启
守护进程是xinetd

启动方法:
vim /etc/xinetd.d/echo-stream
修改:
  1. service echo
  2. {
  3. # This is for quick on or off of the service
  4.         disable = yes
将这里 disable = yes 修改成 disable = no
然后重启 xinetd 服务
service xinetd restart
netstat -ant 查看发现已经启动
perl 网络编程中的 tcp_echo_cli1.pl 就可以正常运行了
  1. #!/usr/bin/perl
  2. use strict;
  3. use Socket;
  4. use IO::Handle;
  5. my ($byte_out,$byte_in) = (0,0);
  6. my $host = shift || 'localhost';
  7. my $port = shift || getservbyname('echo','tcp');
  8. my $protocol = getprotobyname('tcp');
  9. $host = inet_aton($host) or die "$host:unknown host";

  10. socket(SOCK,AF_INET,SOCK_STREAM,$protocol)
  11.         or die "socket() failed:$!";
  12. my $dest_addr = sockaddr_in($port,$host);
  13. connect(SOCK,$dest_addr) or die "connect() failed:$!";

  14. SOCK->autoflush(1);

  15. while(my $msg_out = <>){
  16.         print SOCK $msg_out;
  17.         my $msg_in = <SOCK>;
  18.         print $msg_in;

  19.         $byte_out += length($msg_out);
  20.         $byte_in += length($msg_in);
  21. }

  22. close SOCK;
  23. print "byte_sent = $byte_out,byte_received = $byte_in\n";

  24. OUTPUT:
  25. Hello guys!
  26. Hello guys!
  27. byte_sent = 12,byte_received = 12
哈哈!
阅读(8952) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~