Experimenting with sockets in LC .. Windows 7 Pro, LC v8.1.9.  I have tsnet 
working fine in another project but tsnet appears to be primarily for "sending" 
stuff (sorry for the technical jargon).  Of course, tsnet can read after it 
sends a request.  However, sockets let me simply open and READ messages, which 
is what I need in this particular setting.

I am using a very simple stack with one card and one button on that card with 
my code at the end of this message.  The "strange" URL ("Kitchen.local:80") is 
the assigned ID for an ESP8266 WiFi module.

This script works fine if the module is "on-line" and responding .. returns the 
following from the code running on the ESP8266, as expected:

Data read from socket Kitchen.local:80
HTTP/1.0 200 OK
Content-Type: Kitchen.local/getinterrupt ... NO interrupts ... |2018 8 18|10 49 
14|Saturday
Content-Length: 0
Connection: close
going to sleep

ps.. I am "mis-using" some of the HTML fields for different "content" than 
normal.. but this is OK and works according to my needs.. not the issue here.

If I substitute "www.google.com:80" as the socket ID, the "socketTimeout" 
messages gets generated.  That's fine.  I'm certain Google does not generate an 
output with "sleep" in it.

However, if I substitute "www.googleXXX.com:80" as the socket ID (or distort 
*my* ESP8266 ID to a non-existent one), I would have expected some sort of 
error message... trapped by the "socketError" handler ... but I get nothing.

I can't seem to get the "socketError" message (or "socketClosed" message for 
that matter) to trigger at all.  What I'm REALLY looking for is a "timeout" 
message, ideally... but a "no connect" or "no such socket" would be fine too.  
But "crickets"...

I know that the "socketTimeout" only gets generated after a successful socket 
open.

Any help would be greatly appreciated!



local thisSocket, timeoutCount

on mouseUp
     put empty
      put "Kitchen.local:80" into thisSocket
      //put "www.google.com:80" into thisSocket
      put 5 into timeoutCount
     
     set the socketTimeoutInterval to 2000
     open socket to thisSocket
     read from socket thisSocket until "sleep" with message 
"socketFinishedReading"
     
end mouseUp

on socketFinishedReading pSocketID pDataIn
     put "Data read from socket" && pSocketID & return & pDataIn
     close socket thisSocket
end socketFinishedReading

on socketTimeout theID
     put empty
     wait 100 milliseconds with messages
     put  "The connnection: " & theID & " is not responding."
     subtract 1 from timeoutCount
     if timeoutCount < 1 then
          close Socket theID
     end if     
end socketTimeout

on socketError theID, theError
     answer error "There is a problem with connection: " & theID & "Error: " & 
theError
     close socket theID
end socketError

on socketClosed theID
     answer warning "connection: " & theID & " has been closed"
end socketClosed


Douglas Ruisaard
Trilogy Software




_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to