Posted to tcl by Napier at Thu Jul 16 01:09:49 GMT 2015view pretty

proc Receive {socketID ip port} {
		LOG "Received Data From: $ip $port $socketID:"
		if {[eof $socketID]} {
	        LOG "WARNING: Remote Host Closed the Socket Connection"
			catch {chan close $socketID}
			set ::Socket::ID 0
			set ::Socket::isConnected 0
			if {[catch {::Callbacks::onSockClosed $socketID $ip $port} err]} {
				LOG "WARNING: onSockClosed Callback Not Specified?"
				LOG "WARNING: $err"
			}
			return
	    }
		set data [chan gets $socketID line]
		if {$data >= 0} {
			set response $line
		} else {
			# Specified Translation not Found, Reading Socket Data
			if {[catch {chan read $socketID} response]} {
				LOG "ERROR: While Reading Socket"
				LOG "ERROR: $response"
			}
			set response [string map {"\x00" ""} $response]	
		}
		
		if {[string length $response] < 1} {
			# Null Data Received
			return
		}
		#LOG "$response"
		set ::Socket::isConnected 1
		if {[catch {::Callbacks::onSockReceive $socketID $ip $port $response} err]} {
			LOG "ERROR: onSockReceive Callback Not Specified?"
			LOG "ERROR: $err"
		}
		
	}