JXTA试用(2)

 

        很多人刚开始用jxta的时候,一看到这么多的API函数,头就晕了,一时不知道从何处下手。其实JXTA本身就是一个对未规范化的新领域的一个探索,很多API,都是JXTA的开发者“认为”应该是这样的,虽然这未必是合理的,但还找不到更好的表示方法。所以,对于习惯TCP/IP的C/S模式编程的人,一开始很难适应那是很自然的事情。幸运的是,对于执着于 TCP/IP的socket编程的程序员,JXTA也为他们准备了一套熟悉的接口,方便它们转移到JXTA平台上。所以,初试JXTA,我觉得还是应该从大家熟悉的socket编程入手。

        服务器端:

        JxtaServerSocket serverSocket = null;
        serverSocket = new JxtaServerSocket(netPeerGroup, createSocketAdvertisement(), 10);
        serverSocket.setSoTimeout(0);
        System.out.println("Waiting for connections");
        Socket socket = serverSocket.accept();
        if (socket != null) {
                    System.out.println("New socket connection accepted");
                    ......

       }
       看到这段代码,大家可能感到熟悉无比吧?除了JxtaServerSocket构建时候的参数略微不同外,简直就是标准的socket服务器端编程了。现在针对JxtaServerSocket(arg1, arg2, arg3)函数说明一下:对应于TCP/IP的socketserver,参数1、2、3分别表示jxta中的对等组、服务号和等待队列长度。

        客户端:

      JxtaSocket socket = new JxtaSocket(netPeerGroup,  null, pipeAdv, 5000, true);

      客户端代码也类似,参数分别代表对等组、对等点、服务好、超时长度、是否可靠。

      就几句代码,就能够建立一个可靠、双向的jxta连接。而且jxta完全重载了java.net.socket方法,我们完全可以按照原有的写法来完成P2P程序。

        也许有人要问:这样写了,你和原来的socket编程有什么区别啊?区别实在是太大了:原来的socket能穿越各种类型的防火墙么?除非你在应用层做复杂的连接控制,这是一件相当累人的事情。而通过jxta,你就可以无视这个问题,而专注于真正的p2p编程.

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值