这是一个简单的应用
      
        JXTA
      
      的客户/服务器结构的
      
        例子
      
      ,服务器端创建监听线程,客户端主动连接一次。所有代码非常简洁的说明了
      
        JXTA
      
      的C/S应用的设计框架,原
      
        例子
      
      是在
      
        http://www.
        
          jxta
        
        .org/Tutorials.html
      
      ,我在本机和局域网内已调试通过,并加了注释,有兴趣的朋友看看吧。
      
      需要引用的jar包有三个:
      
        jxta
      
      .jar,log4j.jar,bcprov-jdk14.jar
      
      服务器端
    
  
    
    
    客户端
    
  
 package
      
      
        tutorial.socket;
      
        package
      
      
        tutorial.socket;
         
         import
      
      
        java.io.
      
      
        *
      
      
        ;
      
      
        import
      
      
        java.io.
      
      
        *
      
      
        ;
         import
      
      
        java.util.
      
      
        *
      
      
        ;
      
      
        import
      
      
        java.util.
      
      
        *
      
      
        ;
         import
      
      
        net.jxta.discovery.
      
      
        *
      
      
        ;
      
      
        import
      
      
        net.jxta.discovery.
      
      
        *
      
      
        ;
         import
      
      
        net.jxta.document.
      
      
        *
      
      
        ;
      
      
        import
      
      
        net.jxta.document.
      
      
        *
      
      
        ;
         import
      
      
        net.jxta.endpoint.
      
      
        *
      
      
        ;
      
      
        import
      
      
        net.jxta.endpoint.
      
      
        *
      
      
        ;
         import
      
      
        net.jxta.exception.
      
      
        *
      
      
        ;
      
      
        import
      
      
        net.jxta.exception.
      
      
        *
      
      
        ;
         import
      
      
        net.jxta.peergroup.
      
      
        *
      
      
        ;
      
      
        import
      
      
        net.jxta.peergroup.
      
      
        *
      
      
        ;
         import
      
      
        net.jxta.pipe.
      
      
        *
      
      
        ;
      
      
        import
      
      
        net.jxta.pipe.
      
      
        *
      
      
        ;
         import
      
      
        net.jxta.protocol.
      
      
        *
      
      
        ;
      
      
        import
      
      
        net.jxta.protocol.
      
      
        *
      
      
        ;
         
         public
      
      
      
      
        class
      
      
        SoloClient
      
      
      
        
          {
        
      
      
        public
      
      
      
      
        class
      
      
        SoloClient
      
      
      
        
          {
           static
        
        
          PeerGroupnetPeerGroup
        
        
          =
        
        
        
        
          null
        
        
          ;
        
        
          static
        
        
          PeerGroupnetPeerGroup
        
        
          =
        
        
        
        
          null
        
        
          ;
           
           static
        
        
          PeerGroupAdvertisementgroupAdvertisement
        
        
          =
        
        
        
        
          null
        
        
          ;
        
        
          static
        
        
          PeerGroupAdvertisementgroupAdvertisement
        
        
          =
        
        
        
        
          null
        
        
          ;
           
           private
        
        
          DiscoveryServicediscovery;
        
        
          private
        
        
          DiscoveryServicediscovery;
           
           private
        
        
          PipeServicepipes;
        
        
          private
        
        
          PipeServicepipes;
           
           private
        
        
          OutputPipemyPipe;
        
        
          //
        
        
          输出管道,到服务的
        
        
          private
        
        
          OutputPipemyPipe;
        
        
          //
        
        
          输出管道,到服务的
        
        
           
        
        
           private
        
        
          Messagemsg;
        
        
          private
        
        
          Messagemsg;
           
           public
        
        
          SoloClient()
        
        
        
          
            {
          
        
        
          public
        
        
          SoloClient()
        
        
        
          
            {
             }
            }
          
        
        
           
           public
        
        
        
        
          static
        
        
        
        
          void
        
        
          main(String[]args)
        
        
        
          
            {
          
        
        
          public
        
        
        
        
          static
        
        
        
        
          void
        
        
          main(String[]args)
        
        
        
          
            {
             SoloClientmyClient
          
          
            =
          
          
          
          
            new
          
          
            SoloClient();
            SoloClientmyClient
          
          
            =
          
          
          
          
            new
          
          
            SoloClient();
             System.out.println(
          
          
            "
          
          
            StartingClientpeer....
          
          
            "
          
          
            );
            System.out.println(
          
          
            "
          
          
            StartingClientpeer....
          
          
            "
          
          
            );
             myClient.startJxta();
            myClient.startJxta();
             System.out.println(
          
          
            "
          
          
            GoodBye....
          
          
            "
          
          
            );
            System.out.println(
          
          
            "
          
          
            GoodBye....
          
          
            "
          
          
            );
             System.exit(
          
          
            0
          
          
            );
            System.exit(
          
          
            0
          
          
            );
             }
            }
          
        
        
           
           /**
          
        
        
        
          
            /**
          
          
             *
            *
             *startJxta
            *startJxta
             */
          
          
            */
          
        
        
           private
        
        
        
        
          void
        
        
          startJxta()
        
        
        
          
            {
          
        
        
          private
        
        
        
        
          void
        
        
          startJxta()
        
        
        
          
            {
             try
          
          
          
          
          
            
              {
            
          
          
            try
          
          
          
          
          
            
              {
               //
            
            
              创建默认的JXTA组。
            
            
              //
            
            
              创建默认的JXTA组。
            
            
               netPeerGroup
            
            
              =
            
            
              PeerGroupFactory.newNetPeerGroup();
            
            
              netPeerGroup
            
            
              =
            
            
              PeerGroupFactory.newNetPeerGroup();
               }
            
          
          
          
          
            catch
          
          
            (PeerGroupExceptione)
          
          
          
            
              {
              
              }
            
          
          
          
          
            catch
          
          
            (PeerGroupExceptione)
          
          
          
            
              {
               System.out.println(
            
            
              "
            
            
              fatalerror:groupcreationfailure
            
            
              "
            
            
              );
              System.out.println(
            
            
              "
            
            
              fatalerror:groupcreationfailure
            
            
              "
            
            
              );
               e.printStackTrace();
              e.printStackTrace();
               System.exit(
            
            
              1
            
            
              );
              System.exit(
            
            
              1
            
            
              );
               }
              }
            
          
          
             //
          
          
            获取该组通告
          
          
            //
          
          
            获取该组通告
          
          
             groupAdvertisement
          
          
            =
          
          
            netPeerGroup.getPeerGroupAdvertisement();
          
          
            groupAdvertisement
          
          
            =
          
          
            netPeerGroup.getPeerGroupAdvertisement();
             
             //
          
          
            获取该组发现服务
          
          
            //
          
          
            获取该组发现服务
          
          
             System.out.println(
          
          
            "
          
          
            GettingDiscoveryService
          
          
            "
          
          
            );
          
          
            System.out.println(
          
          
            "
          
          
            GettingDiscoveryService
          
          
            "
          
          
            );
             discovery
          
          
            =
          
          
            netPeerGroup.getDiscoveryService();
            discovery
          
          
            =
          
          
            netPeerGroup.getDiscoveryService();
             
             //
          
          
            获取该组管道服务
          
          
            //
          
          
            获取该组管道服务
          
          
             System.out.println(
          
          
            "
          
          
            GettingPipeService
          
          
            "
          
          
            );
          
          
            System.out.println(
          
          
            "
          
          
            GettingPipeService
          
          
            "
          
          
            );
             pipes
          
          
            =
          
          
            netPeerGroup.getPipeService();
            pipes
          
          
            =
          
          
            netPeerGroup.getPipeService();
             startClient();
            startClient();
             }
            }
          
        
        
           
           private
        
        
        
        
          void
        
        
          startClient()
        
        
        
          
            {
          
        
        
          private
        
        
        
        
          void
        
        
          startClient()
        
        
        
          
            {
             System.out.println(
          
          
            "
          
          
            StarttheClient
          
          
            "
          
          
            );
            System.out.println(
          
          
            "
          
          
            StarttheClient
          
          
            "
          
          
            );
             
             //
          
          
            找到服务
          
          
            //
          
          
            找到服务
          
          
             System.out
          
          
            System.out
             .println(
          
          
            "
          
          
            searchingfortheJXTA-SOLO-XDS-CNServiceadvertisement
          
          
            "
          
          
            );
            .println(
          
          
            "
          
          
            searchingfortheJXTA-SOLO-XDS-CNServiceadvertisement
          
          
            "
          
          
            );
             Enumerationen
          
          
            =
          
          
          
          
            null
          
          
            ;
            Enumerationen
          
          
            =
          
          
          
          
            null
          
          
            ;
             while
          
          
            (
          
          
            true
          
          
            )
          
          
          
            
              {
            
          
          
            while
          
          
            (
          
          
            true
          
          
            )
          
          
          
            
              {
               try
            
            
            
            
            
              
                {
              
            
            
              try
            
            
            
            
            
              
                {
                 //
              
              
                在本地的缓存中查找服务(JXTA-SOLO-XDS-CN)
              
              
                //
              
              
                在本地的缓存中查找服务(JXTA-SOLO-XDS-CN)
              
              
                 en
              
              
                =
              
              
                discovery.getLocalAdvertisements(DiscoveryService.ADV,
              
              
                en
              
              
                =
              
              
                discovery.getLocalAdvertisements(DiscoveryService.ADV,
                 "
              
              
                Name
              
              
                "
              
              
                ,
              
              
                "
              
              
                JXTASPEC:JXTA-SOLO-XDS-CN
              
              
                "
              
              
                );
              
              
                "
              
              
                Name
              
              
                "
              
              
                ,
              
              
                "
              
              
                JXTASPEC:JXTA-SOLO-XDS-CN
              
              
                "
              
              
                );
                 
                 //
              
              
                找到就好
              
              
                //
              
              
                找到就好
              
              
                 if
              
              
                ((en
              
              
                !=
              
              
              
              
                null
              
              
                )
              
              
                &&
              
              
                en.hasMoreElements())
              
              
              
                
                  {
                
              
              
              
              
                if
              
              
                ((en
              
              
                !=
              
              
              
              
                null
              
              
                )
              
              
                &&
              
              
                en.hasMoreElements())
              
              
              
                
                  {
                   break
                
                
                  ;
                
                
                  break
                
                
                  ;
                   }
                  }
                
              
              
                 //
              
              
                本地没有,只好根据服务名称远程搜索
              
              
                //
              
              
                本地没有,只好根据服务名称远程搜索
              
              
                 discovery.getRemoteAdvertisements(
              
              
                null
              
              
                ,DiscoveryService.ADV,
              
              
                discovery.getRemoteAdvertisements(
              
              
                null
              
              
                ,DiscoveryService.ADV,
                 "
              
              
                Name
              
              
                "
              
              
                ,
              
              
                "
              
              
                JXTASPEC:JXTA-SOLO-XDS-CN
              
              
                "
              
              
                ,
              
              
                1
              
              
                ,
              
              
                null
              
              
                );
              
              
                "
              
              
                Name
              
              
                "
              
              
                ,
              
              
                "
              
              
                JXTASPEC:JXTA-SOLO-XDS-CN
              
              
                "
              
              
                ,
              
              
                1
              
              
                ,
              
              
                null
              
              
                );
                 
                 //
              
              
                发现过程是异步的,我们不知道需要多长时间
              
              
                //
              
              
                发现过程是异步的,我们不知道需要多长时间
              
              
                 try
              
              
              
              
              
                
                  {
                
              
              
              
              
                try
              
              
              
              
              
                
                  {
                   Thread.sleep(
                
                
                  2000
                
                
                  );
                  Thread.sleep(
                
                
                  2000
                
                
                  );
                   }
                
              
              
              
              
                catch
              
              
                (Exceptione)
              
              
              
                
                  {
                  
                  }
                
              
              
              
              
                catch
              
              
                (Exceptione)
              
              
              
                
                  {
                   }
                  }
                
              
              
                 }
              
            
            
            
            
              catch
            
            
              (IOExceptione)
            
            
            
              
                {
                
                }
              
            
            
            
            
              catch
            
            
              (IOExceptione)
            
            
            
              
                {
                 
                 //
              
              
                啥也没找到,继续
              
              
                //
              
              
                啥也没找到,继续
              
              
                 }
              
              
                }
              
            
            
               //
            
            
              显示点吧
            
            
              //
            
            
              显示点吧
            
            
               System.out.print(
            
            
              "
            
            
              .
            
            
              "
            
            
              );
            
            
              System.out.print(
            
            
              "
            
            
              .
            
            
              "
            
            
              );
               }
              }
            
          
          
             System.out.println(
          
          
            "
          
          
            wefoundtheserviceadvertisement
          
          
            "
          
          
            );
            System.out.println(
          
          
            "
          
          
            wefoundtheserviceadvertisement
          
          
            "
          
          
            );
             
             //
          
          
            找到以后,得到特殊服务的通告
          
          
            //
          
          
            找到以后,得到特殊服务的通告
          
          
             ModuleSpecAdvertisementmdsadv
          
          
            =
          
          
            (ModuleSpecAdvertisement)en
          
          
            ModuleSpecAdvertisementmdsadv
          
          
            =
          
          
            (ModuleSpecAdvertisement)en
             .nextElement();
            .nextElement();
             try
          
          
          
          
          
            
              {
            
          
          
            try
          
          
          
          
          
            
              {
               //
            
            
              显示一下通告而已
            
            
              //
            
            
              显示一下通告而已
            
            
               StructuredTextDocumentdoc
            
            
              =
            
            
              (StructuredTextDocument)mdsadv
            
            
              StructuredTextDocumentdoc
            
            
              =
            
            
              (StructuredTextDocument)mdsadv
               .getDocument(MimeMediaType.TEXT_DEFAULTENCODING);
              .getDocument(MimeMediaType.TEXT_DEFAULTENCODING);
               StringWriterout
            
            
              =
            
            
            
            
              new
            
            
              StringWriter();
              StringWriterout
            
            
              =
            
            
            
            
              new
            
            
              StringWriter();
               doc.sendToWriter(out);
              doc.sendToWriter(out);
               System.out.println(out.toString());
              System.out.println(out.toString());
               out.close();
              out.close();
               
               //
            
            
              根据获取的通告,获取管道
            
            
              //
            
            
              根据获取的通告,获取管道
            
            
               PipeAdvertisementpipeadv
            
            
              =
            
            
              mdsadv.getPipeAdvertisement();
            
            
              PipeAdvertisementpipeadv
            
            
              =
            
            
              mdsadv.getPipeAdvertisement();
               
               //
            
            
              用上面的通道,通知服务创建输出通道了,试着创建3次。
            
            
              //
            
            
              用上面的通道,通知服务创建输出通道了,试着创建3次。
            
            
               for
            
            
              (
            
            
              int
            
            
              i
            
            
              =
            
            
            
            
              0
            
            
              ;i
            
            
              <
            
            
            
            
              3
            
            
              ;i
            
            
              ++
            
            
              )
            
            
            
              
                {
              
            
            
            
            
              for
            
            
              (
            
            
              int
            
            
              i
            
            
              =
            
            
            
            
              0
            
            
              ;i
            
            
              <
            
            
            
            
              3
            
            
              ;i
            
            
              ++
            
            
              )
            
            
            
              
                {
                 myPipe
              
              
                =
              
              
                pipes.createOutputPipe(pipeadv,
              
              
                10000
              
              
                );
                myPipe
              
              
                =
              
              
                pipes.createOutputPipe(pipeadv,
              
              
                10000
              
              
                );
                 }
                }
              
            
            
               //
            
            
              要说的话
            
            
              //
            
            
              要说的话
            
            
               Stringdata
            
            
              =
            
            
            
            
              "
            
            
              我靠,成功啦!!!
            
            
              "
            
            
              ;
            
            
              Stringdata
            
            
              =
            
            
            
            
              "
            
            
              我靠,成功啦!!!
            
            
              "
            
            
              ;
               
               //
            
            
              组织成消息
            
            
              //
            
            
              组织成消息
            
            
               msg
            
            
              =
            
            
            
            
              new
            
            
              Message();
            
            
              msg
            
            
              =
            
            
            
            
              new
            
            
              Message();
               StringMessageElementsme
            
            
              =
            
            
            
            
              new
            
            
              StringMessageElement(
            
            
              "
            
            
              DataTag
            
            
              "
            
            
              ,
              StringMessageElementsme
            
            
              =
            
            
            
            
              new
            
            
              StringMessageElement(
            
            
              "
            
            
              DataTag
            
            
              "
            
            
              ,
               data,
            
            
              null
            
            
              );
              data,
            
            
              null
            
            
              );
               msg.addMessageElement(
            
            
              null
            
            
              ,sme);
              msg.addMessageElement(
            
            
              null
            
            
              ,sme);
               
               //
            
            
              通过管道发送吧
            
            
              //
            
            
              通过管道发送吧
            
            
               myPipe.send(msg);
            
            
              myPipe.send(msg);
               System.out.println(
            
            
              "
            
            
              message"
            
            
              "
            
            
            
            
              +
            
            
              data
            
            
              +
            
            
            
            
              "
            
            
              "senttotheServer
            
            
              "
            
            
              );
              System.out.println(
            
            
              "
            
            
              message"
            
            
              "
            
            
            
            
              +
            
            
              data
            
            
              +
            
            
            
            
              "
            
            
              "senttotheServer
            
            
              "
            
            
              );
               }
            
          
          
          
          
            catch
          
          
            (Exceptionex)
          
          
          
            
              {
              
              }
            
          
          
          
          
            catch
          
          
            (Exceptionex)
          
          
          
            
              {
               ex.printStackTrace();
              ex.printStackTrace();
               System.out.println(
            
            
              "
            
            
              Client:Errorsendingmessagetotheservice
            
            
              "
            
            
              );
              System.out.println(
            
            
              "
            
            
              Client:Errorsendingmessagetotheservice
            
            
              "
            
            
              );
               }
              }
            
          
          
             }
            }
          
        
        
           }
          }
        
      
      
         
      
    
    ==========================================
    
    在服务器端的根目录下还需要一个叫作pipeserver.adv的管道通告文件,这个文件的作用是使得每次服务启动时创建的都是同一个管道服务。
  
    <?xml version="1.0"?>
    
    
    <!DOCTYPE 
    
      jxta
    
    :PipeAdvertisement>
    
    
    <
    
      jxta
    
    :PipeAdvertisement xmlns:
    
      jxta
    
    ="http://
    
      jxta
    
    .org">
    
    <Id>
    
    urn:
    
      jxta
    
    :uuid-9CCCDF5AD8154D3D87A391210404E59BE4B888209A2241A4A162A10916074A9504
    
    </Id>
    
    <Type>JxtaUnicast</Type>
    
    <Name>
    
      JXTA
    
    -SOLO-XDS-CN</Name>
    
    </
    
      jxta
    
    :PipeAdvertisement>
  
    第一次启动服务器和客户端时需要输入节点名和密码,随便输入就可以了。 
    
  
 package
      
      
        tutorial.socket;
      
        package
      
      
        tutorial.socket;
         
         import
      
      
        java.io.
      
      
        *
      
      
        ;
      
      
        import
      
      
        java.io.
      
      
        *
      
      
        ;
         import
      
      
        net.jxta.discovery.
      
      
        *
      
      
        ;
      
      
        import
      
      
        net.jxta.discovery.
      
      
        *
      
      
        ;
         import
      
      
        net.jxta.document.
      
      
        *
      
      
        ;
      
      
        import
      
      
        net.jxta.document.
      
      
        *
      
      
        ;
         import
      
      
        net.jxta.endpoint.
      
      
        *
      
      
        ;
      
      
        import
      
      
        net.jxta.endpoint.
      
      
        *
      
      
        ;
         import
      
      
        net.jxta.exception.
      
      
        *
      
      
        ;
      
      
        import
      
      
        net.jxta.exception.
      
      
        *
      
      
        ;
         import
      
      
        net.jxta.id.
      
      
        *
      
      
        ;
      
      
        import
      
      
        net.jxta.id.
      
      
        *
      
      
        ;
         import
      
      
        net.jxta.peergroup.
      
      
        *
      
      
        ;
      
      
        import
      
      
        net.jxta.peergroup.
      
      
        *
      
      
        ;
         import
      
      
        net.jxta.pipe.
      
      
        *
      
      
        ;
      
      
        import
      
      
        net.jxta.pipe.
      
      
        *
      
      
        ;
         import
      
      
        net.jxta.platform.
      
      
        *
      
      
        ;
      
      
        import
      
      
        net.jxta.platform.
      
      
        *
      
      
        ;
         import
      
      
        net.jxta.protocol.
      
      
        *
      
      
        ;
      
      
        import
      
      
        net.jxta.protocol.
      
      
        *
      
      
        ;
         
         public
      
      
      
      
        class
      
      
        SoloServer
      
      
      
        
          {
        
      
      
        public
      
      
      
      
        class
      
      
        SoloServer
      
      
      
        
          {
           static
        
        
          PeerGroupgroup
        
        
          =
        
        
        
        
          null
        
        
          ;
        
        
          static
        
        
          PeerGroupgroup
        
        
          =
        
        
        
        
          null
        
        
          ;
           
           static
        
        
          PeerGroupAdvertisementgroupAdvertisement
        
        
          =
        
        
        
        
          null
        
        
          ;
        
        
          static
        
        
          PeerGroupAdvertisementgroupAdvertisement
        
        
          =
        
        
        
        
          null
        
        
          ;
           
           private
        
        
          DiscoveryServicediscovery;
        
        
          private
        
        
          DiscoveryServicediscovery;
           
           private
        
        
          PipeServicepipes;
        
        
          private
        
        
          PipeServicepipes;
           
           private
        
        
          InputPipemyPipe;
        
        
          //
        
        
          输入管道,从客户端来的
        
        
          private
        
        
          InputPipemyPipe;
        
        
          //
        
        
          输入管道,从客户端来的
        
        
           
        
        
           private
        
        
          Messagemsg;
        
        
          private
        
        
          Messagemsg;
           
           //
        
        
          收到的消息
        
        
          //
        
        
          收到的消息
        
        
           private
        
        
          IDgid;
        
        
        
        
          private
        
        
          IDgid;
           
           public
        
        
        
        
          static
        
        
        
        
          void
        
        
          main(String[]args)
        
        
        
          
            {
          
        
        
          public
        
        
        
        
          static
        
        
        
        
          void
        
        
          main(String[]args)
        
        
        
          
            {
             SoloServermyServer
          
          
            =
          
          
          
          
            new
          
          
            SoloServer();
            SoloServermyServer
          
          
            =
          
          
          
          
            new
          
          
            SoloServer();
             System.out.println(
          
          
            "
          
          
            Startingservicepeer...
          
          
            "
          
          
            );
            System.out.println(
          
          
            "
          
          
            Startingservicepeer...
          
          
            "
          
          
            );
             System.out.println(System.getProperty(
          
          
            "
          
          
            user.dir
          
          
            "
          
          
            ));
            System.out.println(System.getProperty(
          
          
            "
          
          
            user.dir
          
          
            "
          
          
            ));
             myServer.startJxta();
            myServer.startJxta();
             System.out.println(
          
          
            "
          
          
            GoodBye....
          
          
            "
          
          
            );
            System.out.println(
          
          
            "
          
          
            GoodBye....
          
          
            "
          
          
            );
             System.exit(
          
          
            0
          
          
            );
            System.exit(
          
          
            0
          
          
            );
             }
            }
          
        
        
           
           private
        
        
        
        
          void
        
        
          startJxta()
        
        
        
          
            {
          
        
        
          private
        
        
        
        
          void
        
        
          startJxta()
        
        
        
          
            {
             try
          
          
          
          
          
            
              {
            
          
          
            try
          
          
          
          
          
            
              {
               //
            
            
              开始,要使用默认的JXTA组
            
            
              //
            
            
              开始,要使用默认的JXTA组
            
            
               group
            
            
              =
            
            
              PeerGroupFactory.newNetPeerGroup();
            
            
              group
            
            
              =
            
            
              PeerGroupFactory.newNetPeerGroup();
               }
            
          
          
          
          
            catch
          
          
            (PeerGroupExceptionex)
          
          
          
            
              {
              
              }
            
          
          
          
          
            catch
          
          
            (PeerGroupExceptionex)
          
          
          
            
              {
               System.out.println(
            
            
              "
            
            
              fatalerror:groupcreationfailure
            
            
              "
            
            
              );
              System.out.println(
            
            
              "
            
            
              fatalerror:groupcreationfailure
            
            
              "
            
            
              );
               ex.printStackTrace();
              ex.printStackTrace();
               System.exit(
            
            
              1
            
            
              );
              System.exit(
            
            
              1
            
            
              );
               }
              }
            
          
          
             //
          
          
            得到默认组的通告
          
          
            //
          
          
            得到默认组的通告
          
          
             groupAdvertisement
          
          
            =
          
          
            group.getPeerGroupAdvertisement();
          
          
            groupAdvertisement
          
          
            =
          
          
            group.getPeerGroupAdvertisement();
             
             //
          
          
            获取该通告的发现服务
          
          
            //
          
          
            获取该通告的发现服务
          
          
             System.out.println(
          
          
            "
          
          
            GettingDiscoveryService...
          
          
            "
          
          
            );
          
          
            System.out.println(
          
          
            "
          
          
            GettingDiscoveryService...
          
          
            "
          
          
            );
             discovery
          
          
            =
          
          
            group.getDiscoveryService();
            discovery
          
          
            =
          
          
            group.getDiscoveryService();
             
             //
          
          
            获取该通告的管道服务
          
          
            //
          
          
            获取该通告的管道服务
          
          
             System.out.println(
          
          
            "
          
          
            GettingPipeService...
          
          
            "
          
          
            );
          
          
            System.out.println(
          
          
            "
          
          
            GettingPipeService...
          
          
            "
          
          
            );
             pipes
          
          
            =
          
          
            group.getPipeService();
            pipes
          
          
            =
          
          
            group.getPipeService();
             startServer();
            startServer();
             }
            }
          
        
        
           
           private
        
        
        
        
          void
        
        
          startServer()
        
        
        
          
            {
          
        
        
          private
        
        
        
        
          void
        
        
          startServer()
        
        
        
          
            {
             System.out.println(
          
          
            "
          
          
            StarttheServerdaemon...
          
          
            "
          
          
            );
            System.out.println(
          
          
            "
          
          
            StarttheServerdaemon...
          
          
            "
          
          
            );
             
             //
          
          
            读该组的ID
          
          
            //
          
          
            读该组的ID
          
          
             gid
          
          
            =
          
          
            group.getPeerGroupID();
          
          
            gid
          
          
            =
          
          
            group.getPeerGroupID();
             try
          
          
          
          
          
            
              {
            
          
          
            try
          
          
          
          
          
            
              {
               //
            
            
              创建一个模块化的简单的通告,此通告仅仅用来表示该服务的存在。
            
            
              //
            
            
              创建一个模块化的简单的通告,此通告仅仅用来表示该服务的存在。
               
               //
            
            
              如果端点要访问该服务,还得创建一个指定的通告,来关联服务。
            
            
              //
            
            
              如果端点要访问该服务,还得创建一个指定的通告,来关联服务。
            
            
               ModuleClassAdvertisementmcadv
            
            
              =
            
            
              (ModuleClassAdvertisement)AdvertisementFactory
            
            
              ModuleClassAdvertisementmcadv
            
            
              =
            
            
              (ModuleClassAdvertisement)AdvertisementFactory
               .newAdvertisement(ModuleClassAdvertisement
              .newAdvertisement(ModuleClassAdvertisement
               .getAdvertisementType());
              .getAdvertisementType());
               mcadv.setName(
            
            
              "
            
            
              JXTAMOD:JXTA-SOLO-XDS-CN
            
            
              "
            
            
              );
              mcadv.setName(
            
            
              "
            
            
              JXTAMOD:JXTA-SOLO-XDS-CN
            
            
              "
            
            
              );
               mcadv
              mcadv
               .setDescription(
            
            
              "
            
            
              SOLOSERVERFORSOLO-CNWITHJXTAFRAMEWORK.
            
            
              "
            
            
              );
              .setDescription(
            
            
              "
            
            
              SOLOSERVERFORSOLO-CNWITHJXTAFRAMEWORK.
            
            
              "
            
            
              );
               ModuleClassIDmcID
            
            
              =
            
            
              IDFactory.newModuleClassID();
              ModuleClassIDmcID
            
            
              =
            
            
              IDFactory.newModuleClassID();
               mcadv.setModuleClassID(mcID);
              mcadv.setModuleClassID(mcID);
               discovery.publish(mcadv);
              discovery.publish(mcadv);
               discovery.remotePublish(mcadv);
              discovery.remotePublish(mcadv);
               
               //
            
            
              创建一个指定的通告,使得端点可以与服务相连。该通告包含端点连接服务所需要的所有信息,
            
            
              //
            
            
              创建一个指定的通告,使得端点可以与服务相连。该通告包含端点连接服务所需要的所有信息,
               
               //
            
            
              例如它包含一个端点用来与服务关联的输入管道数据
            
            
              //
            
            
              例如它包含一个端点用来与服务关联的输入管道数据
            
            
               ModuleSpecAdvertisementmdadv
            
            
              =
            
            
              (ModuleSpecAdvertisement)AdvertisementFactory
            
            
              ModuleSpecAdvertisementmdadv
            
            
              =
            
            
              (ModuleSpecAdvertisement)AdvertisementFactory
               .newAdvertisement(ModuleSpecAdvertisement
              .newAdvertisement(ModuleSpecAdvertisement
               .getAdvertisementType());
              .getAdvertisementType());
               
               //
            
            
              填充相关的信息
            
            
              //
            
            
              填充相关的信息
            
            
               mdadv.setName(
            
            
              "
            
            
              JXTASPEC:JXTA-SOLO-XDS-CN
            
            
              "
            
            
              );
            
            
              mdadv.setName(
            
            
              "
            
            
              JXTASPEC:JXTA-SOLO-XDS-CN
            
            
              "
            
            
              );
               mdadv.setVersion(
            
            
              "
            
            
              VERISON1.0
            
            
              "
            
            
              );
              mdadv.setVersion(
            
            
              "
            
            
              VERISON1.0
            
            
              "
            
            
              );
               mdadv.setCreator(
            
            
              "
            
            
              solo.com
            
            
              "
            
            
              );
              mdadv.setCreator(
            
            
              "
            
            
              solo.com
            
            
              "
            
            
              );
               mdadv.setModuleSpecID(IDFactory.newModuleSpecID(mcID));
              mdadv.setModuleSpecID(IDFactory.newModuleSpecID(mcID));
               mdadv.setSpecURI(<
              mdadv.setSpecURI(< 
            
          
        
      
    发表评论


 
       
         
         
         
         
					 
					 
		
评论