亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mychatgroup.java

?? 利用jxta編寫的聊天室,能在局域網內動態檢測參與人員,通過它,可以了解JXTA運行機制.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
 /*
 * MyChatGroup.java
 * 
 * @auther: Liu Jingchao
 * @version: 1.0
 * @Copyright: 2006-2008
 * @date:  2006.12.28
 *
 */

package jxtatest;
 
import net.jxta.peergroup.PeerGroup;
import net.jxta.peergroup.PeerGroupID;
import net.jxta.peergroup.PeerGroupFactory;
import net.jxta.exception.PeerGroupException;

import net.jxta.protocol.ModuleClassAdvertisement;
import net.jxta.protocol.ModuleSpecAdvertisement;
import net.jxta.protocol.ModuleImplAdvertisement;
import net.jxta.protocol.PeerGroupAdvertisement;
import net.jxta.protocol.PipeAdvertisement;
import net.jxta.protocol.DiscoveryResponseMsg;

import net.jxta.document.AdvertisementFactory;
import net.jxta.document.StructuredTextDocument;
import net.jxta.document.StructuredDocument;
import net.jxta.document.StructuredDocumentFactory;
import net.jxta.document.MimeMediaType;
import net.jxta.document.Advertisement;
import net.jxta.document.TextDocument;

import net.jxta.discovery.DiscoveryService;
import net.jxta.discovery.DiscoveryListener;

import net.jxta.pipe.PipeService;
import net.jxta.pipe.InputPipe;
import net.jxta.pipe.OutputPipe;
import net.jxta.pipe.PipeMsgListener;
import net.jxta.pipe.PipeMsgEvent;

import net.jxta.id.IDFactory;

import net.jxta.platform.ModuleClassID;
import net.jxta.platform.ModuleSpecID;

import net.jxta.endpoint.Message;
import net.jxta.endpoint.MessageElement;
import net.jxta.endpoint.StringMessageElement;
import net.jxta.endpoint.TextDocumentMessageElement;

import java.net.URL;
import java.util.Enumeration;
import java.util.Vector;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;

/**
 * 
 *
 */
public class MyChatGroup implements PipeMsgListener, ActionListener{
	private PeerGroup netGP = null;
	private PeerGroup myGroup = null;
	private DiscoveryService discoverySvc = null;
	private PipeService pipeSvc = null;
	private PipeAdvertisement pipeAdv = null;
	private PipeAdvertisement pipePrivateAdv = null;
	private InputPipe inPipe = null;
	private OutputPipe outPipe = null;
	private String name = "MainChatRoom";
	private long findGroupTimeOut = 3 * 1000;
	private long findGroupTryTimes = 3;
	private long findPipeTimeOut = 3 * 1000;
	private long findPipeTryTimes = 3;
	private long createPipeTimeOut = 6 * 1000;
	private int findPipeCount = 200;
	private Vector pipes = new Vector();
	private Vector pipeId = new Vector();
	private Vector pipesPrivate = new Vector();
	private Vector list = new Vector();
	private Vector pipePrivateId = new Vector();
	
	private JButton jbSend = new JButton("發送");
	private JButton jbRefresh = new JButton("刷新");
	private JButton jbPrivateChat = new JButton("私聊");
	private JTextArea jtaHistoryContent = new JTextArea();
	private JTextArea jtaPrivateContent = new JTextArea();
	private JTextField jtfContent = new JTextField();
	private JTable jlTable = null;
	
	private PipeMsgListener privateMsgListener = null;
	private String advPrivateFileName = "privatepipe.adv";
	
	static String groupURL =
	              "jxta:uuid-04B8173E42A445F0AF6BBB486CEA53D102";
	
	public MyChatGroup(){
		jlTable = new JTable(new DefaultTableModel(){
			                 public int getRowCount(){
			                 	return list.size();
			                 }
			                 
			                 public int getColumnCount(){
			                 	return 1;
			                 }
			                 
			                 public Object getValueAt(int row, int col){
			                 	return list.get(row);
			                 }
			                 
			                 public boolean isCellEditable(int row, int col){
			                 	return false;
			                 }
			                 
			                 public String getColumnName(int col){
			                 	return "在線列表";
			                 }
			               });
		jbSend.addActionListener(this);
		jbRefresh.addActionListener(this);
		jbPrivateChat.addActionListener(this);
		jtaHistoryContent.setEditable(false);
		jtaHistoryContent.setLineWrap(true);
		jtaPrivateContent.setEditable(false);
		privateMsgListener = new PipeMsgListener(){
			 public void pipeMsgEvent(PipeMsgEvent pme){
	    	        privateMessage(pme);
	    	 }
		};
		
	}
	
	public static void main(String[] args) throws Exception{
		MyChatGroup tj = new MyChatGroup();
		tj.startJxta();
		tj.showFrame();
	}
	
	private void startJxta(){
		try{
			netGP = PeerGroupFactory.newNetPeerGroup();
		}catch(Exception e){
			System.out.println(e.getMessage());
			System.exit(0);
		}
		
		try{
			joinMyGroup();
		}catch(Exception e){
			e.printStackTrace();
			System.out.println("Can't join or create myGroup.");
			System.exit(0);
		}
	}
	
	/** 尋找本地組 */
	private boolean findLocalGroup(DiscoveryService dstmp){
		Enumeration en = null;
		try{
            en = dstmp.getLocalAdvertisements(DiscoveryService.GROUP, "Name", "MyChatGroup");
        }catch(IOException ioe){
        	ioe.printStackTrace();
        	return false;
        }
        if(en==null) return false;
        if(!en.hasMoreElements()) return false;
        
        try{
        	myGroup = netGP.newGroup((PeerGroupAdvertisement)en.nextElement());	
        }catch(PeerGroupException pge){
        	pge.printStackTrace();
        	return false;
        }
		return true;
	}
	
	private void showFrame(){
		JFrame jf = new JFrame();
		JPanel jpBottom = new JPanel(new BorderLayout());
		JPanel jpRight = new JPanel(new BorderLayout());
		JPanel jpCenter = new JPanel(new BorderLayout());
		JScrollPane jsp = new JScrollPane(jtaPrivateContent);
		
		jpCenter.setBounds(10, 10, 400, 300);
		jpRight.setBounds(420, 10, 150, 340);
		jpBottom.setBounds(10, 320, 400, 30);
		jsp.setBounds(10, 350, 560, 200);
		jsp.setBorder(BorderFactory.createTitledBorder("私聊記錄"));
		
		jpCenter.add(new JScrollPane(jtaHistoryContent, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER), BorderLayout.CENTER);
		jpBottom.add(jtfContent, BorderLayout.CENTER);
		jpBottom.add(jbSend, BorderLayout.EAST);
		JPanel jpRightBottom = new JPanel(new BorderLayout());
		     // jpRightBottom.add(jbRefresh);
		     jpRightBottom.add(jbPrivateChat);
		jpRight.add(jpRightBottom, BorderLayout.SOUTH);
		jpRight.add(new JScrollPane(jlTable), BorderLayout.CENTER);
		jf.getContentPane().setLayout(null);
		jf.getContentPane().add(jpCenter);
		jf.getContentPane().add(jpBottom);
		jf.getContentPane().add(jpRight);
		jf.getContentPane().add(jsp);
		jf.setSize(580,610);
		jf.setTitle("聊天室 - " + myGroup.getPeerName());
		jf.setLocation(200,200);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jf.getRootPane().setDefaultButton(jbSend);
		jtfContent.requestFocus(true);
		jf.setVisible(true);
	}
	
		/** 尋找本地通告 */
	private boolean findLocalPipe(){
		Enumeration en = null;
		try{
            en = discoverySvc.getLocalAdvertisements(DiscoveryService.ADV, "Name", "MyChatGroup:PipeAdv:"+name);
        }catch(IOException ioe){
        	ioe.printStackTrace();
        	return false;
        }
        if(en==null) return false;
        if(!en.hasMoreElements()) return false;
        
       	System.out.println("Find a exist pipeadvertisement.");
		pipeAdv = (PipeAdvertisement)en.nextElement();
        
		return true;
	}
	
	/** 加入組,沒有找到則建立同時發布通首公告 */
	private void joinMyGroup() throws Exception{
        // find exist group
		DiscoveryService dstmp = netGP.getDiscoveryService();
		
		long tryGroupCount = 1;
		while(!findLocalGroup(dstmp) && tryGroupCount++<=findGroupTryTimes){
			dstmp.getRemoteAdvertisements(null, DiscoveryService.GROUP, "Name", "MyChatGroup", 1);
		    Thread.sleep(findGroupTimeOut);
		}
		
		if(myGroup==null){
		    ModuleImplAdvertisement mia = netGP.getAllPurposePeerGroupImplAdvertisement();
		    myGroup = netGP.newGroup((PeerGroupID)IDFactory.fromURL(new URL("urn", "", groupURL)), mia, "MyChatGroup", "A test chat jxta group.");
	    }
	    
		discoverySvc = myGroup.getDiscoveryService();
		pipeSvc = myGroup.getPipeService();
		
		long tryPipeCount = 1;
		while(!findLocalPipe() && tryPipeCount++<=findPipeTryTimes){
			discoverySvc.getRemoteAdvertisements(null, DiscoveryService.ADV, 
			                                     "Name", "MyChatGroup:PipeAdv:"+name,
			                                     1
			                                    );
			Thread.sleep(findPipeTimeOut);
		}
		
		if(pipeAdv==null){
			System.out.println("Create a new pipeadvertisement.");
			pipeAdv = (PipeAdvertisement)AdvertisementFactory.newAdvertisement(
				PipeAdvertisement.getAdvertisementType());
			pipeAdv.setName("MyChatGroup:PipeAdv:"+name);
			pipeAdv.setPipeID(IDFactory.newPipeID(myGroup.getPeerGroupID()));
			pipeAdv.setType(PipeService.PropagateType);
			
			discoverySvc.publish(pipeAdv, PeerGroup.DEFAULT_LIFETIME, PeerGroup.DEFAULT_EXPIRATION);
			discoverySvc.remotePublish(pipeAdv, DiscoveryService.ADV);
		}
		
		// 私自的通道
		try{
			FileInputStream fis = new FileInputStream(advPrivateFileName);
			pipePrivateAdv = (PipeAdvertisement)AdvertisementFactory.newAdvertisement(
				                            new MimeMediaType("text/xml"), fis);
		}catch(IOException fe){
			FileOutputStream fos = new FileOutputStream(advPrivateFileName);
			pipePrivateAdv = (PipeAdvertisement)AdvertisementFactory.newAdvertisement(
				PipeAdvertisement.getAdvertisementType());
			pipePrivateAdv.setName("MyChatGroup:PipePrivateAdv:"+name);
		    pipePrivateAdv.setPipeID(IDFactory.newPipeID(myGroup.getPeerGroupID()));
		    pipePrivateAdv.setType(PipeService.UnicastType);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美无砖砖区免费| 99久久er热在这里只有精品15| 中文字幕一区二区三区精华液| 久久综合色天天久久综合图片| 91麻豆精品国产91久久久久久 | 丰满亚洲少妇av| 久久66热re国产| 国内精品视频一区二区三区八戒 | 国产成人免费在线观看| 91色porny| 91美女视频网站| 欧美中文字幕亚洲一区二区va在线| 一本大道综合伊人精品热热| 在线看一区二区| 3751色影院一区二区三区| 欧美一区二区视频观看视频| 久久综合色播五月| 国产精品久久久久影院老司| 亚洲视频网在线直播| 亚洲在线成人精品| 日产国产高清一区二区三区 | 中文字幕一区日韩精品欧美| 中文字幕在线视频一区| 亚洲精品五月天| 天堂成人国产精品一区| 国产九九视频一区二区三区| 亚洲第一福利视频在线| 色天天综合色天天久久| 欧美大片日本大片免费观看| 美女mm1313爽爽久久久蜜臀| 国产一区二区毛片| 色婷婷亚洲综合| 91精品国产色综合久久不卡蜜臀 | 首页国产欧美日韩丝袜| 国产一区二区三区综合| 99精品黄色片免费大全| 日韩免费福利电影在线观看| 国产精品卡一卡二| 日韩中文字幕麻豆| 成年人网站91| 日韩欧美你懂的| 亚洲欧美日韩电影| 精品一区二区三区香蕉蜜桃| 91国内精品野花午夜精品| 久久久精品免费网站| 亚洲一区二区三区影院| 国产.精品.日韩.另类.中文.在线.播放| 在线看日韩精品电影| 中文字幕 久热精品 视频在线| 婷婷综合在线观看| 91色.com| 亚洲欧美影音先锋| 国产精品一二三区| 欧美一级生活片| 亚洲成人综合视频| 91片在线免费观看| 国产精品嫩草久久久久| 精品一区二区影视| 在线电影院国产精品| 亚洲欧美偷拍三级| 成人a级免费电影| 精品国产乱码久久久久久图片 | 日本成人在线不卡视频| 成人理论电影网| 国产欧美一区二区三区网站 | 激情深爱一区二区| 欧美一区二区福利在线| 亚洲一区二区三区在线看| 一本大道久久a久久精二百| 欧美高清在线精品一区| 国产精品影视在线观看| 久久人人爽人人爽| 韩国精品主播一区二区在线观看 | 欧美变态tickle挠乳网站| 午夜欧美一区二区三区在线播放| 欧美自拍偷拍一区| 亚洲一区二区av在线| 欧美伊人久久大香线蕉综合69| 亚洲另类在线视频| 欧美色图免费看| 天堂久久久久va久久久久| 欧美一区二区三区四区在线观看 | 国产精品影视在线| 国产精品视频线看| 色视频欧美一区二区三区| 亚洲美女淫视频| 欧美老人xxxx18| 捆绑变态av一区二区三区| 精品日产卡一卡二卡麻豆| 国产丶欧美丶日本不卡视频| 国产蜜臀97一区二区三区| 91美女片黄在线观看| 午夜国产精品一区| 精品国精品国产尤物美女| 国产成人8x视频一区二区| 日韩伦理电影网| 欧美欧美午夜aⅴ在线观看| 麻豆久久一区二区| 国产精品毛片a∨一区二区三区| 一本一本久久a久久精品综合麻豆| 一区二区国产视频| 精品日韩在线一区| 色呦呦国产精品| 久久电影网电视剧免费观看| 中文字幕第一区第二区| 欧美视频一区二区三区在线观看| 久久成人av少妇免费| 亚洲丝袜美腿综合| 日韩一级大片在线| 成人av网在线| 美女在线视频一区| 亚洲美女屁股眼交3| 欧美成人官网二区| 99久久精品国产一区| 久久国产人妖系列| 亚洲欧美国产三级| 精品国产91洋老外米糕| 一本在线高清不卡dvd| 久久电影网站中文字幕| 亚洲国产精品一区二区尤物区| 久久久久国产精品麻豆| 欧美日韩情趣电影| 99免费精品视频| 91美女视频网站| 激情亚洲综合在线| 日韩电影在线观看网站| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 欧美日韩免费一区二区三区| 成人精品电影在线观看| 久久99精品久久久久| 亚洲一区二区三区四区的| 亚洲欧洲日本在线| 久久亚洲精品小早川怜子| 在线不卡免费欧美| 欧美日韩成人综合在线一区二区 | 奇米影视一区二区三区小说| 日韩美女精品在线| 亚洲国产精品99久久久久久久久 | 中文字幕一区二区三区蜜月| 欧美va亚洲va香蕉在线| 欧美日韩激情一区| 欧美三级中文字幕在线观看| 成人精品一区二区三区四区 | 日本久久电影网| 99久久久精品| 91在线播放网址| 色先锋资源久久综合| av动漫一区二区| av中文一区二区三区| 99国产一区二区三精品乱码| 99精品视频一区| 色综合色综合色综合| 色婷婷激情综合| 91高清视频在线| 欧美日韩国产一级| 777a∨成人精品桃花网| 91精品国产丝袜白色高跟鞋| 日韩欧美国产一区二区在线播放 | 日本不卡一区二区三区| 五月天婷婷综合| 亚洲chinese男男1069| 三级在线观看一区二区| 日韩精品一级二级 | 亚洲mv大片欧洲mv大片精品| 一区二区三区四区亚洲| 亚洲欧美一区二区三区极速播放| 一区二区不卡在线播放| 亚洲福利一二三区| 日韩av不卡在线观看| 国内成+人亚洲+欧美+综合在线| 国产精品影视在线观看| 93久久精品日日躁夜夜躁欧美| 色噜噜狠狠一区二区三区果冻| 在线观看国产91| 久久综合久久综合久久| 国产精品三级av在线播放| 一区二区三区鲁丝不卡| 午夜亚洲国产au精品一区二区| 麻豆精品一区二区综合av| 国产麻豆精品95视频| 91色在线porny| 日韩网站在线看片你懂的| 中文字幕成人av| 肉丝袜脚交视频一区二区| 久久99这里只有精品| 色诱视频网站一区| 久久综合视频网| 亚洲大片精品永久免费| 国产999精品久久久久久| 欧美日韩一区三区| 中文字幕欧美日韩一区| 午夜久久久影院| 成人午夜精品在线| 欧美一区二区三区在线观看视频| 亚洲午夜久久久久久久久久久 | 国产欧美精品日韩区二区麻豆天美| 亚洲人成亚洲人成在线观看图片 | 尤物av一区二区| 国产麻豆精品在线观看| 欧美顶级少妇做爰|