1. Re: EU Server
- Posted by Hawke' <mdeland at GEOCITIES.COM> Dec 05, 1998
- 347 views
- Last edited Dec 06, 1998
Ralf Nieuwenhuijsen wrote: > How do you make an FTP server with it ? an ftp server could get complicated very quickly, if you wanted to allow more than 1 user to DL a file at once... a single user FTP server would be (nearly) trivial, a FTP server that could send multiple different files to multiple different users would need a way to round robin the DL's. I haven't given much thought to FTP servers as applied to EUServ yet, but the groundwork is there. Off the top of my head, and likly not the best solution, I would say you need to add a field to all user records that would be a flag showing they were DL'ing, and another flag showing the offset into a file that they are at. Remembering that we need to packetize everything, we should only send 576byte sized chunks of that file. We would really need a companion client to do this efficiently... a client that after it received that packet would send back to the server a go/nogo signal for the server to loopback into FD_READ and send the next packet/resend the last packet... without a way to get triggered into FD_READ, we would need to (somehow) scroll the entire userlist, often, and see who is ready for their next packet/send them a packet/reset their status to ready for another packet... i'm not real wild about that algorithm/solution, personally... bandwidth becomes a real issue as well, not to mention the inability to verify successful reception of packets without a client. on the issues of UPL'ing, receiving a text file from any number of users,simultaneously, would be trivial, the way it sits right now... a flag showing the user is uploading and another field showing the filename, and every time an 'enter' rolls by, the server will already sub out with a cmdpending flag set, and we could add a snippet in processnormal to append the user's buffer to a file... no worries, nor prob there... users ULing binary becomes a hassle, as we would need to intercept BEFORE getkeyfromuser got triggered, perform an end run round that func, and append the buffer to a file... the concept is real simple sounding, but we have the problem of: how do we know a 'line' of data from the binary file is ready to be appended... (length(bufferIDX)=576 ???) and how do we know the end of file was reached? (to turn off our binary send flag (if find(-1,buffer)????)... I also keep thinking that building FTP directly INTO EUServ, instead of 'converting' EUServ into an FTP server, may actually be the answer, and yes, there is a huge difference between the two... :) before i work on this myself tho, i have other do_func's i want to code and other applications for EUServ i wish to address, a big, big one being turning EUServ into a collaboration tool that requires NO special client or software, so that myself, and others, working on EUServ issues (such as simultaneous FTP) and EU prog's in general, can communicate/whiteboard/share&run programs we/they are working on... it's been too hard to work with the people that are helping me with this project without that type of software available... the other thing i want to work on is finding EUserv a home, where it's up 24/7, in the collaboration mode, ready to go, for everyone on this list to use. I think we could use this, as a group, and i think it would help. the trick is getting a static IP attached to a Win host run by an implementor with morals... heh. we could go with the ml.org DYNDNS with autoupload dynamic IP to webpage link method, to solve the static IP problem... but, that is a problem i'll likely address later... tis all fer now...Hawke'