I honestly don't know if you're asking questions to help lead me to the correct answer, or if you actually know what's going wrong but aren't saying anything. You stated:
Hint: It may be a good idea if you first think about who the intended recipient of the IQ request in Smack is. Then you can compare the actual route of the incoming IQ request, with the expected one (if they are not the same that is).
I'm either completely lost or I don't know what question you're asking. My understanding of the process is this:
- Sender sends a SI to the receiver. In this IQ, there is a listed of supported protocols for sending data
- Receiver receives the SI IQ and responds with the chosen protocol (as CSH mentioned, it may respond with a list of protocols).
- The sender then sends an IQ with a block of data. It seems like the sender waits for the receiver to accept this block of data.
So my answer would be that the receiver should receiver an IQ Set with a block of data from the sender. In my case, the receiver never receives the IQ with a block of data from the sender. That is to say, according to the Smack Debugger Window, the IQ never appears in the "All Packets" menu, but does appear under "Raw Received Packets". Translating the steps above into psuedo-code, when the sender calls sendFile on an object of type OutgoingFileTransfer, this is equivalent to Step 1 above. This creates a FileTransferRequest, and the receiver is notified of this request. The receiver the calls accept() on the FileTransferRequest and then calls receiveFile() on the IncomingFileTransfer (which I believe is equivalent to Step 2 above). From there, according to the Javadocs for the methods I've called, the Transfer Negotiation and Stream Negotiation are supposed to be taken care of. I've literally tried every method for sending a file on the OutgoingFileTransfer object and every method for receiving a file on the IncomingFileTransfer object, all to no avail. If I'm missing something really obvious or just being thick I have no problem with you saying so.