[twsocket] OnDataSent event and related questions
Hi, I am currently using the OnDataSent event of TWSocket to signal my state machine to move on. This is working mostly, however, sometimes, the event does not happen. Now, at the far side, the server being connected to closes the connection when it has it's data, so I am thinking that this close will sometimes mask the OnDataSent. It is happening about 1 packet in 40, each packet being 60 bytes. Some of the servers will not close the connection after a packet, and some do, some servers send a acknowledge packet back, so I need a reliable method of testing that the data has gone, before I can proceed in the state machine. Is hooking the disconnect event a valid approach if the OnDataSent event does not fire? Regards, Andy -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] OnDataSent event and related questions
info2004 wrote: Hi, I am currently using the OnDataSent event of TWSocket to signal my state machine to move on. This is working mostly, however, sometimes, the event does not happen. Now, at the far side, the server being connected to closes the connection when it has it's data, so I am thinking that this close will sometimes mask the OnDataSent. When the server closes the connection OnSessionClosed triggers. In order to check whether component's internal send buffer is empty you have property BufferedByteCount. If your application has to close the connection when all data has been sent, you should use method ShutDown(1) from the OnDataSent event, this makes sure the receiver will receive everything. -- Arno Garrels [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] OnDataSent event and related questions
Arno, Arno Garrels wrote: info2004 wrote: When the server closes the connection OnSessionClosed triggers. In order to check whether component's internal send buffer is empty you have property BufferedByteCount. If your application has to close the connection when all data has been sent, you should use method ShutDown(1) from the OnDataSent event, this makes sure the receiver will receive everything. I think that we are at cross purposes here. The OnDataSent event looks like it does not fire (sometimes) if the far end (server) closes the connection. Is this true? The server gets the data, then closes the connection, and at my sending end if I solely wait for OnDataSent, sometimes it does not happen, and I time out. I just really want to make sure my assumption is correct before I can put this to bed. Regards, Andy -- Arno Garrels [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] OnDataSent event and related questions
Hello Andy, I think that we are at cross purposes here. The OnDataSent event looks like it does not fire (sometimes) if the far end (server) closes the connection. Is this true? OnDataSent is fired when TWSocket has delivered his data to winsock. As Arno pointed out it is not a signal that the data is arrived at the other end. If the other end close the connection before TWSocket has delivered the data to Winsock then OnDataSent will of course not fire. The server gets the data, then closes the connection, and at my sending end if I solely wait for OnDataSent, sometimes it does not happen, and I time out. So the peer that receive the data will close? That's good, so you are sure it is delivered before the connection closes. You may consider to design a small protocol so that both end talk to each other and know all data is sent / delivered / handled with success. I just really want to make sure my assumption is correct before I can put this to bed. now you can :) --- Rgds, Wilfried [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html http://www.mestdagh.biz -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be