免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4226 | 回复: 10
打印 上一主题 下一主题

soket编程的问题帮我看看~ [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-03-06 18:16 |只看该作者 |倒序浏览
谢谢先!~
原代码:
#!C:\Perl\bin\perl.exe
use Socket;
$AF_INET=2;
$SOCK_STR=1;
$PROTOCOL=0;
$port=6667;
$PACKIT='S n C4x8';
select(NEWSOCK);
$|=1;
select(STDOUT);
socket(MY_SOCKET,$AF_INET,$SOCK_STR,$PROTOCOL)||die "\n $0:Cannot open socket!";
print "socket successfull opended!\n";
$my_ip_addr=pack($PACKIT,$AF_INET,$port,127.0.0.1
bind(MY_SOCKET,$my_ip_addr) || die "bind fail!";
print "bound to socket!";
listen(MY_SOCKET,5)|| die "cann't listen!";
print "listening..";
while(1){
  $remote=accept(NEWSOCKET,MY_SOCKET) || die "unaccept!";
  $pid=fork || &cleanup;
  if($pid==fork){
  sleep(3);
  print NEWSOCKET "weclome to this server!";
  close NEWSOCKET;
  close MY_SOCKET;
  exit;
}
  else {
  sleep 10;
  close MY_SOCKET;
  close NEWSOCKET;
  exit;
  }
}  
sub cleanup {close NEWSOCKET;close(MY_SOCKET);die "cann't fork!";}

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-03-06 19:35 |只看该作者

soket编程的问题帮我看看~

#!/usr/bin/perl
use Socket;
$AF_INET=2;
$SOCK_STR=1;
$PROTOCOL=0;
$port=6667;
$PACKIT='S n C4x8';
select(NEWSOCK);
$|=1;
select(STDOUT);
socket(MY_SOCKET,$AF_INET,$SOCK_STR,$PROTOCOL)||die "\n $0:Cannot open socket!";
print "socket successfull opended!\n";
$my_ip_addr=pack($PACKIT,$AF_INET,$port,127.0.0.1);
bind(MY_SOCKET,$my_ip_addr) || die "bind fail!";
print "bound to socket!";
listen(MY_SOCKET,5)|| die "cann't listen!";
print "listening..";
while(1){
  $remote=accept(NEWSOCKET,MY_SOCKET) || die "unaccept!";
  defined(my $pid=fork()) || &cleanup;
  if($pid==0){
    sleep(3);
    print NEWSOCKET "weclome to this server!";
    close NEWSOCKET;
    close MY_SOCKET;
    exit;
  }
    sleep 10;
    close MY_SOCKET;
    close NEWSOCKET;
    exit;
}
sub cleanup {close NEWSOCKET;close(MY_SOCKET);die "cann't fork!";}

论坛徽章:
0
3 [报告]
发表于 2003-03-06 21:58 |只看该作者

soket编程的问题帮我看看~

~忘了“);”,呵呵~不好意思

论坛徽章:
0
4 [报告]
发表于 2003-03-07 09:05 |只看该作者

soket编程的问题帮我看看~

建议程序调试使用 activestate komodo 2.01 专业版进行调试。
komodo 运行有点慢,但非常适合作调试

1. 有很好的语法检查
2. 有很好的调试功能,变量跟踪,单步运行,运行进入模块内部跟踪,出错信息具体,出错行号显示
3. 较强的变量声明检查,部分变量应该是全局变量或是 my,local 变量,比较清楚警告
4. 帮助比较不错

如果感觉慢,那用 perlexpress 或 optiperl 调试也不错。而 perlbuilder 强项在于 CGI 程序编写与调试

perlchina.org 开有 FTP 下载。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2003-03-07 16:34 |只看该作者

soket编程的问题帮我看看~

不過我還是比較習慣用
perl -c xxx.pl
配合
#!/usr/bin/perl -w
來檢查語法正確與否...


上面的程序我用perl -c 去檢查就知道是少了 ) ;
實際執行後,下面fork的地方也有點問題..
所以我作了點修改...

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2003-03-09 01:57 |只看该作者

soket编程的问题帮我看看~

"$|=1; " 里的“$|”是何意啊,弟兄们?

论坛徽章:
0
7 [报告]
发表于 2003-03-09 12:22 |只看该作者

soket编程的问题帮我看看~

打开或关闭缓冲

论坛徽章:
0
8 [报告]
发表于 2003-03-09 12:38 |只看该作者

soket编程的问题帮我看看~

$|=1; 可以用来自动刷新

论坛徽章:
0
9 [报告]
发表于 2003-03-11 03:44 |只看该作者

soket编程的问题帮我看看~

OK

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
10 [报告]
发表于 2003-03-11 07:06 |只看该作者

soket编程的问题帮我看看~

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP