📄 pipedemo.java
字号:
//PipeDemo.java
import net.jxta.j2me.*;
import java.io.IOException;
import javax.microedition.midlet.MIDlet;
public class PipeDemo extends MIDlet
{
private PeerNetwork peerNetwork;
public PipeDemo ()
{
try {
peerNetwork = PeerNetwork.createInstance ("JxmeTestPeer");
// You may change Relay_URL (i.e. http://localhost:9700) to your own Relay IP.
byte[] persistentState = peerNetwork.connect ("http://localhost:9700", null);
String pipeId = createPipe("JxmeTestPipe");
String listenOk = listenToPipe(pipeId);
String searchedPipeId = searchPipe("JxmeTestPipe");
Message msg = authorMessage("hello buddy!");
String sendOk = sendMessage (msg, searchedPipeId);
}
catch(IOException ie){
ie.printStackTrace();
}
}
public String createPipe(String pipeName)
{
String pipeId = null;
try
{
/***Step 1***/
int messageID = peerNetwork.create (PeerNetwork.PIPE, pipeName, null, PeerNetwork.UNICAST_PIPE);
System.out.println(">>> create pipe request ... ");
/***Step 2***/
Message msg = peerNetwork.poll(5000);
/***Step 3***/
if (msg == null)
return null;
/***Step 4***/
pipeId = processMessage(msg, messageID, "success");
System.out.println(">>> create pipe request succeed, id : "+pipeId );
}
catch (IOException ie) {
ie.printStackTrace ();
}
return pipeId;
}//createPipe()
public String listenToPipe(String pipeId)
{
String listenOk = null;
try
{
/***Step 1***/
int messageID = peerNetwork.listen (pipeId);
/***Step 2***/
Message msg = peerNetwork.poll(5000);
/***Step 3***/
if (msg == null)
return null;
/***Step 4***/
listenOk = processMessage(msg, messageID, "success");
System.out.println (">>> listening succeed over pipe... ");
}
catch (IOException ie) {
ie.printStackTrace ();
}
return listenOk;
}
public String searchPipe(String pipeName)
{
String pipeId = null;
try
{
/***Step 1***/
int messageID = peerNetwork.search (PeerNetwork.PIPE, "Name", "JxmeTestPipe", 1);
/***Step 2***/
Message msg = peerNetwork.poll(5000);
/***Step 3***/
if (msg == null)
return null;
/***Step 4***/
pipeId = processMessage(msg, messageID, "result");
System.out.println(">>> search pipe id found : "+pipeId );
}
catch (IOException ie) {
ie.printStackTrace();
}
return pipeId;
}
public Message authorMessage (String messageString)
{
/***Step 1***/
Element[] elements = new Element [1];
/***Step 2***/
elements [0] = new Element("message", messageString.getBytes(), null, null);
/***Step 3***/
Message message = new Message (elements);
return message;
}
public String sendMessage(Message message, String pipeId)
{
String sentOk = null;
try
{
/***Step 1***/
int messageID = peerNetwork.send (pipeId, message);
/***Step 2***/
Message msg = peerNetwork.poll(10000);
/***Step 3***/
if (msg == null)
return null;
/***Step 4***/
sentOk = processMessage(msg, messageID, "success");
System.out.println(">>> jxme message sent... " );
}
catch (IOException ie){
ie.printStackTrace();
}
return sentOk;
}
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 + -