From: Arseny S. <am...@ic...> - 2002-05-27 22:23:54
|
Hello Todd, Tuesday, May 28, 2002, 1:41:21 AM, you wrote: >> Todd> Correct me if I'm wrong, but using socket-connect with :timeout 0 will >> Todd> (virtually) always signal an error, since you'll never get connected >> Todd> instantly. (Perhaps you would on loopback.) That is not what I want. >> Yes, you're right. But socket-wait doesn't return an error - it polls (and >> it's convenient). What if we'll have analog of socket-wait but for client >> side - call it, say connect-wait or wait-connect or client-wait... It will >> turn blocking off, starts connecting (if connection wasn't started yet), >> waits checking whether connection ready and returns nil or t depending on >> result. Then socket-connect (when called) checks the status, turns on the >> blocking and signals an error or returns stream in full harmony with Lisp >> spirit balancing Client and Server sides of Connection... How do you >> like it ? Todd> Well, I'm not very clear on how your proposal would work. What would Todd> you pass to SOCKET-CONNECT to indicate that you want to use whatever Todd> it is you get from CLIENT-WAIT? You're right again. Then we need a CLIENT-SOCKET datatype analogous to SERVER-SOCKET and initializer for it (taking port and host parameters). Then initializer starts connection, CLIENT-WAIT waits or polls and CLIENT-CONNECT creates the stream or throws an error. Todd> What about the idea of having a SOCKET-CONNECT% didn't you like? Think about it as about your half-connected streams splitted into half-connected part (CLIENT-SOCKET) and connected SOCKET-STREAM. That's just in more agreement with things existing before (as far I can see). Todd> I don't suppose it makes sense to re-suggest the stuff in: Todd> http://www.geocrawler.com/archives/3/1124/2002/1/100/7517822/ does it? I think those people who don't want to know about blocking, UDP sockets, ioctl etc have right to it. So let advanced interface exists, but if it hurts basic interface - maybe make it separate from SOCKET: ? -- Best regards, Arseny mailto:am...@ic... |