[tcljava-user] fileevent and sockets in jacl
Brought to you by:
mdejong
From: Marc Z. <mz...@pa...> - 2006-03-23 15:47:58
|
Hallo Are the commands socket and fileevent now full work in the=20 newest release? I have a little test script with fileevent and server socket and it does no= t=20 work correct. I become the following message when I make a connection from = a=20 telnet to this script: proc Start_Server {port} { global Server set Server(main) [socket -server Accept $port] } proc Accept {sock addr port} { global Clients puts "Accept $sock from $addr port $port" set Clients(addr,$sock) [list $addr $port] fconfigure $sock -buffering line fileevent $sock readable [list ClientEvent $sock] } proc ClientEvent {sock} { global Clients if {[eof $sock] || [catch {gets $sock line}]} { # end of file or abnormal connection drop close $sock puts "Close $sock from [lindex $Clients(addr,$sock) 0] port\ [lindex $Clients(addr,$sock) 1]" catch {unset echo(addr,$sock)} } else { if {[string length $line]} { puts "Data from $sock:$line" puts $sock $line flush $sock } } } =2D--------------message: Start_Server 40666 set Run 1 puts "Started at [clock format [clock seconds] -format "%Y%m%d-%H%M%S"]" vwait Run puts "Stopped at [clock format [clock seconds] -format "%Y%m%d-%H%M%S"]" Started at 20060323-151326 Accept sock1 from 127.0.0.1 port 51679 tcl.lang.TclException =A0 =A0 =A0 =A0 at tcl.lang.ReturnCmd.cmdProc(ReturnCmd.java:99) =A0 =A0 =A0 =A0 at tcl.lang.Parser.evalObjv(Parser.java:818) =A0 =A0 =A0 =A0 at tcl.lang.Parser.eval2(Parser.java:1221) =A0 =A0 =A0 =A0 at tcl.lang.Procedure.cmdProc(Procedure.java:161) =A0 =A0 =A0 =A0 at tcl.lang.Parser.evalObjv(Parser.java:818) =A0 =A0 =A0 =A0 at tcl.lang.Parser.evalObjv(Parser.java:804) =A0 =A0 =A0 =A0 at tcl.lang.Parser.eval2(Parser.java:1221) =A0 =A0 =A0 =A0 at tcl.lang.Procedure.cmdProc(Procedure.java:161) =A0 =A0 =A0 =A0 at tcl.lang.Parser.evalObjv(Parser.java:818) =A0 =A0 =A0 =A0 at tcl.lang.Parser.eval2(Parser.java:1221) =A0 =A0 =A0 =A0 at tcl.lang.Interp.eval(Interp.java:2222) =A0 =A0 =A0 =A0 at tcl.lang.Interp.eval(Interp.java:2306) =A0 =A0 =A0 =A0 at=20 tcl.lang.SocketConnectionEvent.processEvent(SocketConnectionEvent.java:31) =A0 =A0 =A0 =A0 at tcl.lang.Notifier.serviceEvent(Notifier.java:444) =A0 =A0 =A0 =A0 at tcl.lang.Notifier.doOneEvent(Notifier.java:585) =A0 =A0 =A0 =A0 at tcl.lang.VwaitCmd.cmdProc(VwaitCmd.java:59) =A0 =A0 =A0 =A0 at tcl.lang.AutoloadStub.cmdProc(Extension.java:144) =A0 =A0 =A0 =A0 at tcl.lang.Parser.evalObjv(Parser.java:818) =A0 =A0 =A0 =A0 at tcl.lang.Parser.eval2(Parser.java:1221) =A0 =A0 =A0 =A0 at tcl.lang.Interp.eval(Interp.java:2222) =A0 =A0 =A0 =A0 at tcl.lang.Interp.evalFile(Interp.java:2401) =A0 =A0 =A0 =A0 at tcl.lang.SourceCmd.cmdProc(SourceCmd.java:75) =A0 =A0 =A0 =A0 at tcl.lang.Parser.evalObjv(Parser.java:818) =A0 =A0 =A0 =A0 at tcl.lang.Parser.eval2(Parser.java:1221) =A0 =A0 =A0 =A0 at tcl.lang.Interp.eval(Interp.java:2222) =A0 =A0 =A0 =A0 at tcl.lang.Interp.eval(Interp.java:2306) =A0 =A0 =A0 =A0 at tcl.lang.Interp.recordAndEval(Interp.java:2361) =A0 =A0 =A0 =A0 at tcl.lang.ConsoleThread$1.processEvent(Shell.java:321) =A0 =A0 =A0 =A0 at tcl.lang.Notifier.serviceEvent(Notifier.java:444) =A0 =A0 =A0 =A0 at tcl.lang.Notifier.doOneEvent(Notifier.java:585) =A0 =A0 =A0 =A0 at tcl.lang.Shell.main(Shell.java:151) Thanks and bye Marc Ziegenhagen =2D-=20 Marc Ziegenhagen Panorgan AG Pfannenstilstrasse 3 Postfach 470 CH-8820 W=E4denswil Tel. +41 44 783 96 61 =46ax. +41 44 783 96 69 Email mz...@pa... Web http://www.panorgan.ch=09 |