Harsh., If u have any specific doubts in writing this asynchronous state machine email me privately at suraj...@gmail.com. I am pretty much jobless right now and can spend some time on this.
Thanks --Gayathri On Friday, May 6, 2011, Harshvir Sidhu <hvssi...@gmail.com> wrote: > Thanks, I will give this a try. > // Harshvir > > On Fri, May 6, 2011 at 6:44 PM, Eric S. Eberhard <fl...@vicsmba.com> wrote: > Change the sockets. This is what I use: > > int setblock(fd, mode) > int fd; > int mode; /* True - blocking, False - non blocking */ > { > int flags; > int prevmode; > > flags = fcntl(fd, F_GETFL, 0); > prevmode = !(flags & O_NDELAY); > if (mode) > flags &= ~O_NDELAY; /* turn blocking on */ > else > flags |= O_NDELAY; /* turn blocking off */ > fcntl(fd, F_SETFL, flags); > > return prevmode; > } > > Since it returns the existing mode you can use as such: > > prevmode = setblock(fd,0) /* turn of blocking */ > /* do your thing */ > (void)setblock(fd,prevmode); /* restore to original > condition */ > > At 04:15 PM 5/6/2011, you wrote: > > Thanks for the reply Gayathri. > Do you mean to changing the sockets to non blocking, or when i create bio for > ssl to make that as non blocking? > > Thanks. > > > On Fri, May 6, 2011 at 6:03 PM, Gayathri Sundar > <<mailto:suraj...@gmail.com>suraj...@gmail.com> wrote: > Harsh, > > Okay from what I can understand, if you make ur underlying fd non blocking > then it would work fine. Blocking FDs, unless and until one client is > finished with its processing the other client will not be able to communicate > with the server as the previous fd is blocked. The server is waiting on the > 1st client to finish. When you have 3 ports and 3 clients then ofcourse it > will work. > > thanks > --Gayathri > > > > On Fri, May 6, 2011 at 5:50 PM, Harshvir Sidhu > <<mailto:hvssi...@gmail.com>hvssi...@gmail.com> wrote: > Gayatri, > My server code is single threaded and i am using blocking sockets, i am using > fd_set and select to wait for event on socket, and then performing operation > based on the event that acts on a socket. > I have an array of sockets to listen. So if i start listening on 3 different > ports and from my client machien, i try to connect on them at different ports > then it works fine, but when i use 1 listen port then it dont work properly. > What i mean to say by work properly is that the connection is established, > but when i am waiting for select to return event, then it dont show any > activity when i send data from client, only 1 of them works, 2 dont work. > In addition to that, when i use WireShark to see packets, then it shows that > machine has received the packet from client. But server dont show that alert. > Thats why i think it could be some socket option which is affecting it. > > // Harshvir > > > > On Fri, May 6, 2011 at 5:37 PM, Gayathri Sundar > <<mailto:suraj...@gmail.com>suraj...@gmail.com> wrote: > Harshvir, > > SO_REUSEADDR sock option has noting to do with ur problem, please go thro the > socket ops man page to get a better understanding. First find out if ur > server code is a blocking i/o or non blocking I/O..if former then connections > will be handled sequentially..only after the 1st client is finished will the > server be able to respond to the 2nd connect request. If non blocking then > there should be no problem. Check the code if you see and O_NONBLOCK flag set > in some fcntl call or check for FIONBIO flag. > > Thanks > --Gayathri > > > > On Fri, May 6, 2011 at 5:29 PM, Harshvir Sidhu > <<mailto:hvssi...@gmail.com>hvssi...@gmail.com> wrote: > Well i think this link is for my question. > I have already done 1-5 from the Before you ask list. > Number 6, i dont know anyone who use openssl. > Number 7, it will take a lot of time to go through all the code, i was just > trying to save some time. I thought user discussion forums are for this only. > I apologize for my understanding. > ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager majord...@openssl.org