Detecting unexpectedly closed sockets

Tomas Franzén tomas at lightheadsw.com
Mon Oct 18 12:11:23 EDT 2004


On 2004-10-17, at 23.29, Alex Tweedly wrote:
> Can you define "many" and "MANY" ?
> (i.e. 50 v 500 v 5,000 v 50,000 ....)

Sorry for not being more clear. I'd like to support a few hundred 
clients, but more if possible, of course. Let's say 300.

> 1. are you using TCP (open socket) or UDP (open datagram socket) ?

TCP.

> 2. if TCP - do you open a connection per transaction  (cf most HTTP / 
> www) or open one and keep it open for multiple transactions (e.g 
> persistent connections, as added in HTTP 1.1) ?

I use persistent connections, like Connection: keep-alive in HTTP 1.1. 
:-)

> 2a. (if persistent connection) does the server close inactive TCP 
> connections to preserve its TCP connections (most servers will only be 
> able to have a limited number of TCP connections open simultaneously)?

The connections are kept open. (that's my plan, at least)

> 3. how many transactions per second (or per minute or per hour - 
> whichever is appropriate) would a typical teacher and a typical 
> student be involved in ?

Not including the keep-alives, the teacher may send, let's say... 1 per 
minute maybe, shouldn't me more.
Students don't send anything, except messages to the server telling it 
they're alive, and responding to requests from the server and teacher.

> 4. probably most important - how quickly do you need to be able to 
> respond ?

You mean responding to a request? It doesn't matter much, but I guess 
the teachers don't want to wait too long before the results appear.

> 5. what kind of failures are you trying to detect ?
>   - loss of power, network, etc.
>   - student disconnecting deliberately (playing hooky :-)

Both of them. The purpose of StudentWatcher + RSCP is to provide 
teachers with a tool to keep students from doing web surfing and game 
playing instead of school work in class.
The teachers can monitor what the students are doing (list of 
processes, requesting screenshots), and take actions (lock the 
computer, shut it down, kill processes, display messages, etc). So it 
shouldn't be too easy for the students to disrupt the connection.

> 6. what kind of response will be made when a loss is detected ?
>     what order of magnitude time-frame is involved ?
>    (i.e. machine speed, human speed, school administration speed ?)

The only thing that happens is that the server detects a lost 
connection, and notifies the teacher computer. The teacher app updates 
the list of students, marking the disconnected student with "Offline" 
in red text. What do you mean by "order of magnitude time-frame"?

> if it's hard to answer the above questions ahead of deployment, then 
> make N somewhere between those two (5 and 60) and easy to change, and 
> see what happens .....

Will do. I plan on setting N to 10. If using 3.5 as the timeout factor, 
a disconnection would be detected in about roughly 35 secs, which seems 
okay.

Students will hate this program. ;-)

Thanks!

Tomas Franzén
Lighthead Software
http://www.lightheadsw.com/

I'm listening to Rammstein - Zwitter 


More information about the use-livecode mailing list