#307 Opening a socket to an IP that is not in use should time out

obsolete: 8.0.4

OriginalBugID: 1950 Bug
Version: 8.0.4
SubmitDate: '1999-04-27'
LastModified: '1999-08-08'
Severity: MED
Status: Closed
Submitter: pat
ChangedBy: hobbs
OS: All
OSVersion: NA
Machine: NA
FixedDate: '2000-10-25'
FixedInVersion: NA
ClosedDate: '1999-08-08'

From: nospam@loop.net (vipvop)
Subject: bug in TCL/TK 8.0.4 for Win95 - deals with socket

I tried to report this to the person it says
(scott.stanton@eng.sun.com) in the readme file, but in came back user
unknown so Im posting it here. I dont usually check this group so
fogive me if its already been reported. The problem is when you try to
open a socket to an IP address that isnt currently in use, or doesnt
have the port you are trying to connect to open. Instead of timing out
after a few seconds, like it does in the linux version, it just waits
seemingly forever (after a min I give up and just ctrl-alt-del it).
Heres the code that works in linux, but not in Win95.

set endip 100
while {$endip < 131} {
set addr 207.137.46.$endip
puts "Trying $addr"
if [catch {set sockid [socket $addr 80]}] {set sockid 0}
if [string match "sock*" $sockid] {puts "Open port 80 at: $addr "}
set endip [expr $endip + 1]
if [string match "sock*" $sockid] {close $sockid}
puts "All done!"

That is meant to find my friends web server, he has a dynamic IP
address and now that monoliths .dyn.ml.org got shut down its the only
way to find his address out, by trying all of them in that range.
The bug specifically is the line:
if [catch {set sockid [socket $addr 80]}] {set sockid 0}

Tcl uses the platforms standard timeout (usually about 1 min),
and this works as tested (it times out) on Windows as well.
The user probably didn't wait long enough because it does just
hang in the interim.
-- 08/08/1999 hobbs


  • Brent B. Welch

    Brent B. Welch - 2000-10-26
    • priority: 5 --> 2
    • status: open --> closed-fixed
  • Don Porter

    Don Porter - 2001-03-31
    • labels: 104250 --> 27. Channel Types

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks