[EMAIL PROTECTED] wrote:
Niklas Therning <[EMAIL PROTECTED]> a écrit :

[EMAIL PROTECTED] 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

Reply via email to