powered by Jive Software

XMPP File Transfer Error: refused cancelled error The peer did not find any of the provided stream mechanisms acceptable

**First i run the 2nd user which executes fine but while running the 1st user i get the “refused cancelled error The peer did not find any of the provided stream mechanisms acceptable.” error. How do i resolve it? **

XmppTest : this is my 1st user for conversation.

package com.javacodegeeks.xmpp;

import java.util.Scanner;

public class XmppTest {

public static void main(String[] args) throws Exception {

String username = “tupa616684”;

String password = “12345678”;

XmppManager xmppManager = new XmppManager(“127.0.0.1”, 5222);

xmppManager.init();

xmppManager.performLogin(username, password);

xmppManager.setStatus(true, “Hello everyone”);

String buddyJID = “dhvi427017@yob-dtp-12-stu5tpa”;

String buddyName = “dhvi427017”;

xmppManager.createEntry(buddyJID, buddyName);

xmppManager.sendMessage(null, “dhvi427017@yob-dtp-12-stu5tpa”);

//System.out.println(“aaaaaaaaaaaaaaaaa”+xmppManager.getUsers().size());

xmppManager.send();

boolean isRunning = true;

int i=0;

while (isRunning) {

//Thread.sleep(10000);

Scanner reader = new Scanner(System.in); // Reading from System.in

System.out.println("Enter a message: ");

String n = reader.nextLine();

xmppManager.sendMessage(n, “dhvi427017@yob-dtp-12-stu5tpa”);

}

xmppManager.destroy();

}

}

XmppTestUser : This is my 2nd user of conversation.

package com.javacodegeeks.xmpp;

import java.util.Scanner;

public class XmppTestUser {

public static void main(String[] args) throws Exception {

String username = “dhvi427017”;

String password = “12345678”;

XmppManager xmppManager = new XmppManager(“127.0.0.1”,5222);

xmppManager.init();

xmppManager.performLogin(username, password);

xmppManager.setStatus(true, “Hello everyone”);

/*String buddyJID = “prashant@yob-ltp-20-dvi”;

String buddyName = “prashant”;

xmppManager.createEntry(buddyJID, buddyName);*/

xmppManager.sendMessage(“Hello ADMIN”, “tupa616684@yob-dtp-12-stu5tpa”);

xmppManager.receive();

xmppManager.printRoster();

boolean isRunning = true;

int i=0;

while (isRunning) {

Scanner reader = new Scanner(System.in); // Reading from System.in

System.out.println("Enter a message: ");

String n = reader.nextLine();

//Thread.sleep(12000);

xmppManager.sendMessage(n, “tupa616684@yob-dtp-12-stu5tpa”);

}

xmppManager.destroy();

}

}

XmppManager : This is a manager file which contains required methods.

package com.javacodegeeks.xmpp;

import java.io.File;

import java.util.ArrayList;

import java.util.Collection;

import java.util.HashMap;

import org.jivesoftware.smack.Chat;

import org.jivesoftware.smack.ChatManager;

import org.jivesoftware.smack.ConnectionConfiguration;

import org.jivesoftware.smack.MessageListener;

import org.jivesoftware.smack.Roster;

import org.jivesoftware.smack.RosterEntry;

import org.jivesoftware.smack.SmackConfiguration;

import org.jivesoftware.smack.XMPPConnection;

import org.jivesoftware.smack.XMPPException;

import org.jivesoftware.smack.ConnectionConfiguration.SecurityMode;

import org.jivesoftware.smack.packet.Message;

import org.jivesoftware.smack.packet.Presence;

import org.jivesoftware.smack.packet.Presence.Type;

import org.jivesoftware.smackx.filetransfer.FileTransferListener;

import org.jivesoftware.smackx.filetransfer.FileTransferManager;

import org.jivesoftware.smackx.filetransfer.FileTransferRequest;

import org.jivesoftware.smackx.filetransfer.IncomingFileTransfer;

import org.jivesoftware.smackx.filetransfer.OutgoingFileTransfer;

import org.jivesoftware.smackx.filetransfer.FileTransfer.Status;

public class XmppManager {

private static final int packetReplyTimeout = 500; // millis

private String server;

private int port;

private ConnectionConfiguration config;

private XMPPConnection connection;

private ChatManager chatManager;

private MessageListener messageListener;

public XmppManager(String server, int port) {

this.server = server;

this.port = port;

}

public void init() throws XMPPException {

System.out.println(String.format(“Initializing connection to server %1$s port %2$d”, server, port));

SmackConfiguration.setPacketReplyTimeout(packetReplyTimeout);

config = new ConnectionConfiguration(server, port);

config.setSASLAuthenticationEnabled(false);

config.setSecurityMode(SecurityMode.disabled);

connection = new XMPPConnection(config);

connection.connect();

System.out.println("Connected: " + connection.isConnected());

chatManager = connection.getChatManager();

messageListener = new MyMessageListener();

}

public void performLogin(String username, String password) throws XMPPException {

if (connection!=null && connection.isConnected()) {

connection.login(username, password);

}

}

public void setStatus(boolean available, String status) {

Presence.Type type = available? Type.available: Type.unavailable;

Presence presence = new Presence(type);

presence.setStatus(status);

connection.sendPacket(presence);

}

public void destroy() {

if (connection!=null && connection.isConnected()) {

connection.disconnect();

}

}

public void printRoster() throws Exception {

Roster roster = connection.getRoster();

Collection entries = roster.getEntries();

for (RosterEntry entry : entries) {

System.out.println(String.format(“Buddy:%1$s - Status:%2$s”,

entry.getName(), entry.getStatus()));

}

}

public void sendMessage(String message, String buddyJID) throws XMPPException {

System.out.println(String.format(“Sending mesage ‘%1$s’ to user %2$s”, message, buddyJID));

Chat chat = chatManager.createChat(buddyJID, messageListener);

chat.sendMessage(message);

}

public void createEntry(String user, String name) throws Exception {

System.out.println(String.format(“Creating entry for buddy ‘%1$s’ with name %2$s”, user, name));

Roster roster = connection.getRoster();

roster.createEntry(user, name, null);

}

class MyMessageListener implements MessageListener {

@Override

public void processMessage(Chat chat, Message message) {

String from = message.getFrom();

String body = message.getBody();

if(body !=null){

System.out.println(String.format("’%1$s’ from %2$s", body, from));

}

}

}

public ArrayList<HashMap<String, String>> getUsers(){

ArrayList<HashMap<String, String>> usersList=new ArrayList<HashMap<String, String>>();

Presence presence = new Presence(Presence.Type.available);

connection.sendPacket(presence);

final Roster roster = connection.getRoster();

Collection entries = roster.getEntries();

for (RosterEntry entry : entries) {

HashMap<String, String> map = new HashMap<String, String>();

Presence entryPresence = roster.getPresence(entry.getUser());

Presence.Type type = entryPresence.getType();

map.put(“USER”, entry.getName().toString());

map.put(“STATUS”, type.toString());

usersList.add(map);

}

return usersList;

}

public void send() throws XMPPException{

XmppManager xmppManager = new XmppManager(“127.0.0.1”, 7777);

//xmppManager.init();

xmppManager.performLogin(“tupa616684”, “12345678”);

SmackConfiguration.setPacketReplyTimeout(packetReplyTimeout);

config = new ConnectionConfiguration(server, port);

config.setSASLAuthenticationEnabled(false);

config.setSecurityMode(SecurityMode.disabled);

connection = new XMPPConnection(config);

connection.connect();

FileTransferManager manager = new FileTransferManager(connection);

OutgoingFileTransfer transfer = manager.createOutgoingFileTransfer(“dhvi427017@yob-dtp-12-stu5tpa”);

File file = new File(“C:\Users\Tushar.Patil\Desktop\scopeList.txt”);

try {

transfer.sendFile(file, “scopeList.txt”);

} catch (XMPPException e) {

e.printStackTrace();

}

while(!transfer.isDone()) {

if(transfer.getStatus().equals(Status.error)) {

System.out.println("ERROR!!! " + transfer.getError());

} else if (transfer.getStatus().equals(Status.cancelled)

|| transfer.getStatus().equals(Status.refused)) {

System.out.println("Cancelled!!! " + transfer.getError());

}

try {

Thread.sleep(1000L);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

if(transfer.getStatus().equals(Status.refused) || transfer.getStatus().equals(Status.error)

|| transfer.getStatus().equals(Status.cancelled)){

System.out.println("refused cancelled error " + transfer.getError());

} else {

System.out.println(“Success”);

}

}

public void receive(){

FileTransferManager manager = new FileTransferManager(connection);

manager.addFileTransferListener(new FileTransferListener() {

public void fileTransferRequest(final FileTransferRequest request) {

new Thread(){

@Override

public void run() {

IncomingFileTransfer transfer = request.accept();

//File mf = Environment.getExternalStorageDirectory();

File file = new File(“C:\Users\Tushar.Patil\Desktop\” + transfer.getFileName());

try{

transfer.recieveFile(file);

while(!transfer.isDone()) {

try{

Thread.sleep(1000L);

}catch (Exception e) {

}

if(transfer.getStatus().equals(Status.error)) {

}

if(transfer.getException() != null) {

transfer.getException().printStackTrace();

}

}

}catch (Exception e) {

}

};

}.start();

}

});

}

}