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

  1. proc Receive {socketID ip port} {
  2. LOG "Received Data From: $ip $port $socketID:"
  3. if {[eof $socketID]} {
  4. LOG "WARNING: Remote Host Closed the Socket Connection"
  5. catch {chan close $socketID}
  6. set ::Socket::ID 0
  7. set ::Socket::isConnected 0
  8. if {[catch {::Callbacks::onSockClosed $socketID $ip $port} err]} {
  9. LOG "WARNING: onSockClosed Callback Not Specified?"
  10. LOG "WARNING: $err"
  11. }
  12. return
  13. }
  14. set data [chan gets $socketID line]
  15. if {$data >= 0} {
  16. set response $line
  17. } else {
  18. # Specified Translation not Found, Reading Socket Data
  19. if {[catch {chan read $socketID} response]} {
  20. LOG "ERROR: While Reading Socket"
  21. LOG "ERROR: $response"
  22. }
  23. set response [string map {"\x00" ""} $response]
  24. }
  25.  
  26. if {[string length $response] < 1} {
  27. # Null Data Received
  28. return
  29. }
  30. #LOG "$response"
  31. set ::Socket::isConnected 1
  32. if {[catch {::Callbacks::onSockReceive $socketID $ip $port $response} err]} {
  33. LOG "ERROR: onSockReceive Callback Not Specified?"
  34. LOG "ERROR: $err"
  35. }
  36.  
  37. }