<div>这个是server端的application,程序会有client端发送指令过来,执行bat文件,在执行中再次发送中断指令,停止bat文件的运行,但是目前使用detach中断不了,还是会执行,请帮忙看看</div>
<div># Server Program<br>use threads;<br>use IO::Socket::INET;</div>
<p>print ">> Server Program <<\n";</p>
<p># Create a new socket<br>$MySocket=new IO::Socket::INET->new(LocalPort=>1234,Proto=>'udp');<br>my $new_sock = $MySocket->accept();</p>
<p># Keep receiving messages from client<br>while(1)<br>{<br> $MySocket->recv($text,128);<br> if ( $text =~ /stop/ )<br> {<br> open(STOP , "d:\\thread_d");<br> while(<STOP>)<br> {<br> push @child_thread , $_;<br>
}<br> close(STOP);<br> $asdf = @child_thread[0];<br> print "thread: $asdf\n";<br> stop();<br> }<br> else<br> {<br> $thread = threads->new(\&start_thread,$MySocket);<br> open(THREAD , ">d:\\thread_d");<br>
print THREAD $thread;<br> close(THREAD);<br> }<br>}</p>
<p>sub stop{<br> print "thread: $thread\n";<br> $qwer = $thread->detach;<br> print "$qwer\n";<br>}</p>
<p>sub start_thread<br>{<br> chdir "F:\\C26_1";<br> system("F:\\C26_1\\C26_remake.bat");<br>}</p>
<p><br><br> </p>
<div><span class="gmail_quote">在08-6-11,<b class="gmail_sendername">truncatei</b> <<a href="mailto:truncatei@gmail.com">truncatei@gmail.com</a>> 写道:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">检查一下代码的逻辑看看,或许哪里弄错了。<br><br>2008/6/11 Steven Zhu <<a href="mailto:stevenzyk@gmail.com">stevenzyk@gmail.com</a>>:<br>
> 现在detach可以起作用了,但是似乎无法终止线程啊<br>> 我尝试的例子是把一个正在做copy的线程终止掉,停止copy,但是现在发觉仍然在做啊<br>><br>_______________________________________________<br>China-pm mailing list<br><a href="mailto:China-pm@pm.org">China-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/china-pm">http://mail.pm.org/mailman/listinfo/china-pm</a></blockquote></div><br><br clear="all"><br>-- <br>BR<br>Steven.zhu