⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 peergroupdemo.java

📁 实现JXta在J2ME版本上的JXME连接relay的非常好的入门例子
💻 JAVA
字号:
//PeerGroupDemo.java

import net.jxta.j2me.*;
import java.io.IOException;
import javax.microedition.midlet.MIDlet;

public class PeerGroupDemo extends MIDlet
{
    private PeerNetwork peerNetwork;


    public PeerGroupDemo()
    {

       try {
            peerNetwork = peerNetwork.createInstance ("JxmeTestPeer");

            //You can change Relay_URL address from localhost to your own.
            byte[] persistentState = peerNetwork.connect ("http://localhost:9700", null);
            System.out.println(">>> connected to relay.. ");

            String groupId = createPeerGroup("JxmeTestGroup");
            String searchedGroupId = searchPeerGroup("JxmeTestGroup");
            String joinRequestOk = joinPeerGroup(searchedGroupId);
        }	
        catch (IOException ie) {
            ie.printStackTrace ();
        }

    }


    public String createPeerGroup(String groupName)
    {

        String newGroupId = null;
        try 
        {
            /***Step 1***/
            int messageID = peerNetwork.create (PeerNetwork.GROUP, groupName, null, null);
            System.out.println(">>> creating peer group... ");

            /***Step 2***/
            Message msg = peerNetwork.poll (5000);

            /***Step 3***/
            if (msg == null)
                return null;

            /***Step 4***/
            newGroupId = processMessage(msg, messageID, "success");
            System.out.println(">>> new peergroup id : "+newGroupId);

        }

        catch (IOException ie) {
            ie.printStackTrace ();
        }
        return newGroupId;
    }


    public String searchPeerGroup(String groupName)
    {

        String newGroupId = null;
		try 
        {
            /***Step 1***/
            int messageID = peerNetwork.search (PeerNetwork.GROUP, "Name", groupName, 1);
            System.out.println(">>> group search requet id : "+messageID);

            /***Step 2***/
            Message msg = peerNetwork.poll (5000);

            /***Step 3***/
            if (msg == null)
                return null;

            /***Step 4***/
            newGroupId = processMessage(msg, messageID, "result");

            System.out.println(">>> searched peergroup id : "+newGroupId);

        }

        catch (IOException ie) {
            ie.printStackTrace ();
        }
        return newGroupId;
    }

    public String joinPeerGroup(String groupId)
    {
        String joinOk = null;

        try 
        {
            /***Step 1***/
            int messageID = peerNetwork.join (groupId, null);
            System.out.println(">>> join peerGroup request.. " );

            /***Step 2***/
            Message msg = peerNetwork.poll (5000);

            /***Step 3***/
            if (msg == null)
                return null;

            /***Step 4***/
            joinOk = processMessage(msg, messageID, "success");
            
            System.out.println(">>> join peergroup request succeeded.. ");
        }

        catch (IOException ie) {
            ie.printStackTrace ();
        }
        return joinOk;
    }


    
    private String processMessage (Message msg, int reqId, String successCriterion)
    {
        int requestIdentifierInResponse = 0;
        String searchedResourceIdentifier = null;
        String responseString = null;

        try
        {
            /***Step 1***/
            for (int j=0; j < msg.getElementCount(); j++) {
                /***Step 2***/
                Element e = msg.getElement(j);
                /***Step 3***/
                if ((e.getNameSpace()).equals("proxy")) {
                    if ((e.getName()).equals("requestId"))
                        requestIdentifierInResponse = Integer.parseInt(new String(e.getData()));
                    else if ((e.getName()).equals("response"))
                        responseString = new String (e.getData());
                    else if ((e.getName()).equals("id"))
                        searchedResourceIdentifier = new String (e.getData());
                }
            } //for (int j=0;) 

            /***Step 4***/
            if (requestIdentifierInResponse == reqId) {
                /***Step 5***/
                if (responseString.equals (successCriterion)) {
                    if (searchedResourceIdentifier != null)
                        /***Step 6***/
                        return searchedResourceIdentifier;	
                    else
                        /***Step 7***/
                        return responseString;
                }
            }//if (requestIdentifierInResponse == reqId)

        }
        catch(NumberFormatException ne){
            ne.printStackTrace();
        }

        return null;
    }

    public void startApp()    {
    }

    protected void pauseApp() {
    }

    protected void destroyApp(boolean unconditional){
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -