directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Niklas Therning <nik...@trillian.se>
Subject Re: [Mina] 'messageSent' semantic
Date Wed, 11 Jan 2006 15:04:51 GMT
daune.jf@daune-consult.com wrote:
> Niklas Therning <niklas@trillian.se> a écrit :
> 
>> daune.jf@daune-consult.com wrote:
>>
>>> Hi,
>>>
>>> when I receive the 'messageSent' notification, what is its semantic?
>>>
>>> Does it mean that the receiving end has received the message (from a 
>>> TCP point
>>> of view, i.e. that all bytes have been received)?
>>>
>>> Regards,
>>>
>>> J-F
>>
>>
>> No, it only means that the message has been written to the 
>> SocketChannel corresponding to the session. There's no guarantee that 
>> the receiving side has received any of the message bytes yet.
>>
>> /Niklas
> 
> 
> Thanks Niklas.
> 
> Some clarifications:
> 
> - Is it possible to know when message has really been received?

No, I don't think so unless you add some kind of acknowledge message to 
your protocol.

> 
> - If not why? Is it due to TCP/IP, OS, sockets, use of non-blocking I/O ?

Well, I'm not an expert on TCP/IP but from what I know I think it will 
be hard and require very low level programming to achieve that kind of 
control. The Java abstraction of Socket IO (both blocking and 
non-blocking) is too high-level.

I guess one would have to map packet sequence numbers to messages and 
then be able to intercept acknowledges of sent packets to do what you 
want. I'm not sure if OS:es allows you to get that kind of control.

But as I said, I'm no expert on TCP/IP so please correct me if I'm wrong.

/Niklas

Mime
View raw message