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

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

?? jabber.java

?? 用JAVA編寫的基于J2ME的即時消息通信的客戶端的程序。用于與JABBER服務器通信
?? JAVA
字號:
/* * Copyright 2004 Grzegorz Grasza groz@gryf.info * * This file is part of mobber. Mobber is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the Free  * Software Foundation; either version 2 of the License, or (at your option) any later version. * Mobber is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE.  See the GNU General Public License for more details. * You should have received a copy of the GNU General Public License along with mobber; * if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA . */import javax.microedition.io.*;import utils.*;import java.io.*;import java.util.*;import javax.microedition.lcdui.*;public class Jabber extends Thread{	String host, port, username, resource, password, myjid;		XmlReader reader;	XmlWriter writer;		Jabber(String host, String port, String username, String password, String resource)	{		this.host = host;		this.port = port;		this.username = username;		this.password = password;		this.resource = resource;		myjid = username + "@" + host;		start();	}		public void run()	{		try		{			StreamConnection connection = (StreamConnection)Connector.open("socket://" + host + ":" + port);			reader = new XmlReader(connection.openInputStream());			writer = new XmlWriter(connection.openOutputStream());		}		catch(Exception e)		{			//e.printStackTrace();			// failed to connect			connectionFailed();			return;		}		// connected		try		{			login();			parse();		}		catch(Exception e)		{			//e.printStackTrace();			// failed to write data			connectionFailed();		}	}	private void login() throws IOException	{		// start stream		writer.startTag("stream:stream");		writer.attribute("to",host);		writer.attribute("xmlns","jabber:client");		writer.attribute("xmlns:stream","http://etherx.jabber.org/streams");		writer.flush();		// log in		writer.startTag("iq");		writer.attribute("type","set");		writer.attribute("id","auth");		writer.startTag("query");		writer.attribute("xmlns","jabber:iq:auth");				writer.startTag("username");		writer.text(username);		writer.endTag();		writer.startTag("password");		writer.text(password);		writer.endTag();		writer.startTag("resource");		writer.text(resource);		writer.endTag();				writer.endTag(); // query		writer.endTag(); // iq		writer.flush();	}	public void end()	{		try		{			writer.endTag();			writer.flush();			writer.close();		}		catch(Exception e)		{			//e.printStackTrace();			// failed to write data			connectionFailed();		}	}	public void sendMessage(String to, String topic, String msg)	{		try		{			writer.startTag("message");			writer.attribute("to",to);			if(topic != null)			{				writer.startTag("subject");				writer.text(topic);				writer.endTag();			}			writer.startTag("body");			writer.text(msg);			writer.endTag();			writer.endTag();			writer.flush();		}		catch(Exception e)		{			//e.printStackTrace();			// failed to write data			connectionFailed();		}	}	public void sendPresence(String to, String type, String show, String status, int priority)	{		try		{			writer.startTag("presence");			if(type != null)				writer.attribute("type", type);			if(to != null)				writer.attribute("to", to);			if(show != null)			{				writer.startTag("show");				writer.text(show);				writer.endTag();			}			if(status != null)			{				writer.startTag("status");				writer.text(status);				writer.endTag();			}			if(priority != 0)			{				writer.startTag("priority");				writer.text(Integer.toString(priority));				writer.endTag();			}			writer.endTag(); // presence			writer.flush();		}		catch(Exception e)		{			//e.printStackTrace();			// failed to write data			connectionFailed();		}	}		public void setContact(String jid, String name, Enumeration group, String subscription)	{		try		{			writer.startTag("iq");			writer.attribute("type","set");			writer.startTag("query");			writer.attribute("xmlns","jabber:iq:roster");			writer.startTag("item");			writer.attribute("jid", jid);			if(name != null)				writer.attribute("name", name);			if(subscription!=null)				writer.attribute("subscription",subscription);			if(group != null)				while(group.hasMoreElements())				{					writer.startTag("group");					writer.text((String)group.nextElement());					writer.endTag(); // group				}			writer.endTag(); // item			writer.endTag(); // query			writer.endTag(); // iq			writer.flush();		}		catch(Exception e)		{			//e.printStackTrace();			// failed to write data			connectionFailed();		}	}	public void getRoster() throws IOException	{		writer.startTag("iq");		writer.attribute("id","roster");		writer.attribute("type","get");		writer.startTag("query");		writer.attribute("xmlns","jabber:iq:roster");		writer.endTag(); // query		writer.endTag(); // iq		writer.flush();		mobber.roster.noRoster = false;		mobber.roster.addCommand(Action.edit);		mobber.roster.addCommand(Action.add);		mobber.roster.addCommand(Action.delete);	}		private void parse() throws IOException	{		reader.next(); // start tag		while(reader.next() == reader.START_TAG)		{			String tmp = reader.getName();			if(tmp.equals("message"))				parseMessage();			else if(tmp.equals("presence"))				parsePresence();			else if(tmp.equals("iq"))				parseIq();			else				parseIgnore();		}		reader.close();	}	public void parseIq() throws IOException	{		String type = reader.getAttribute("type");		String id = reader.getAttribute("id");		String from = reader.getAttribute("from");		if(type.equals("error"))		while(reader.next() == reader.START_TAG)		if(reader.getName().equals("error"))		{			if(id.equals("auth"))			{				// not authorized				end();				mobber.display.setCurrent(new Alert(Label.error, parseText(), null, AlertType.ERROR), mobber.login);			}			else				mobber.display.setCurrent(new Alert(Label.error, parseText(), null, AlertType.ERROR));		}		if(type.equals("result") && id != null && id.equals("auth"))		{			// authorized			reader.next();			if(mobber.roster.noRoster)				getRoster();			sendPresence(null, null, null, null, 0);		}		else		while(reader.next() == reader.START_TAG)		{			if(reader.getName().equals("query"))			{				if(reader.getAttribute("xmlns").equals("jabber:iq:roster"))				{					while(reader.next() == reader.START_TAG)					{						if(reader.getName().equals("item"))						{							type = reader.getAttribute("type");							String jid = reader.getAttribute("jid"),							name = reader.getAttribute("name"),							subscription = reader.getAttribute("subscription"),							ask = reader.getAttribute("ask"),							newjid = (jid.indexOf('/') == -1) ? jid : jid.substring(0, jid.indexOf('/'));							boolean check = true;							mobber.roster.removeContact(newjid);							while(reader.next() == reader.START_TAG)							{								if(reader.getName().equals("group"))								{									mobber.roster.setContact(new Contact(newjid, name, parseText()));									check = false;								}								else									parseIgnore(); //other							}							if(check && !subscription.equals("remove"))								mobber.roster.setContact(new Contact(newjid, name, ""));						}						else							parseIgnore(); //other					}				}				else if(reader.getAttribute("xmlns").equals("jabber:iq:version"))				{					while(reader.next() == reader.START_TAG)					{						parseIgnore();					}					//reader.next();					// send version					writer.startTag("iq");					writer.attribute("type", "result");					writer.attribute("id", id);					writer.attribute("to", from);					writer.startTag("query");					writer.attribute("xmlns","jabber:iq:version");										writer.startTag("name");					writer.text("mobber");					writer.endTag();					writer.startTag("version");					writer.text(mobber.version);					writer.endTag();					writer.startTag("os");					writer.text("J2ME");					writer.endTag();										writer.endTag(); // query					writer.endTag(); // iq				}				else					parseIgnore();			}			else				parseIgnore();		}	}		public void parsePresence() throws IOException	{		String from = reader.getAttribute("from"),		type = reader.getAttribute("type"),		status = "", show = null;		//int priority=-1;		while(reader.next() == reader.START_TAG)		{			String tmp = reader.getName();			if(tmp.equals("status"))				status = parseText();			else if(tmp.equals("show"))				show = parseText();			//else if(tmp.equals("priority"))			//	priority = Integer.parseInt(parseText());			else				parseIgnore();		}		// (from, type, status, show, priority);		int showint = Contact.none;		if(show == null)			showint = Contact.online;		else if(show.equals(Presence.show[Contact.chat]))			showint = Contact.chat;		else if(show.equals(Presence.show[Contact.dnd]))			showint = Contact.dnd;		else if(show.equals(Presence.show[Contact.away]))			showint = Contact.away;		else if(show.equals(Presence.show[Contact.xa]))			showint = Contact.xa;		if(type != null && (type.equals("unavailable") || type.equals("unsubscribed") || type.equals("error")))			showint = Contact.offline;		if(type != null && type.equals("subscribe"))			mobber.display.setCurrent(new SubscriptionRequest(from, status));		else		{			String jid = (from.indexOf('/') == -1) ? from : from.substring(0, from.indexOf('/'));			if(!myjid.equals(jid))			{				boolean check = true;				if(mobber.roster.groups.containsKey(jid))				{					Enumeration groups = ((Vector)mobber.roster.groups.get(jid)).elements();					while(groups.hasMoreElements())					{						check = false;						mobber.roster.setContact(new Contact(jid, status, showint, (String)groups.nextElement()));					}				}				if(check)					mobber.roster.setContact(new Contact(jid, status, showint, ""));			}		}	}		public void parseMessage() throws IOException	{		String from = reader.getAttribute("from"),		type = reader.getAttribute("type"),		body=null, subject=null;		while(reader.next() == reader.START_TAG)		{			String tmp = reader.getName();			if(tmp.equals("body"))				body = parseText();			else if(tmp.equals("subject"))				subject = parseText();			else				parseIgnore();		}		// (from, subject, body);		mobber.message.add((from.indexOf('/') == -1) ? from : from.substring(0, from.indexOf('/')), body);	}		public String parseText() throws IOException	{		String endTagName = reader.getName();		StringBuffer str = new StringBuffer("");		int t = reader.next(); // omit start tag		while(!endTagName.equals(reader.getName()))		{			if(t == reader.TEXT)				str.append(reader.getText());			t = reader.next();		}		return str.toString();	}		public void parseIgnore() throws IOException	{		int x;		while((x=reader.next()) != reader.END_TAG)			if(x == reader.START_TAG)				parseIgnore();	}	private void connectionFailed()	{		mobber.display.setCurrent(new Alert(Label.error, Label.failed, null, AlertType.ERROR), mobber.login);	}};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线免费视屏| 精品处破学生在线二十三| 在线播放日韩导航| 中文字幕不卡一区| 秋霞午夜鲁丝一区二区老狼| 成人午夜免费av| 日韩欧美高清一区| 亚洲成av人影院在线观看网| 波多野结衣91| 久久无码av三级| 毛片av一区二区| 欧美日韩成人综合在线一区二区| 中国色在线观看另类| 久久国产精品色婷婷| 欧美精品久久一区二区三区| 亚洲欧洲日韩综合一区二区| bt欧美亚洲午夜电影天堂| 精品国产凹凸成av人网站| 亚洲国产综合色| 91官网在线观看| 一区在线中文字幕| 国产suv精品一区二区6| 久久综合久久综合久久综合| 毛片av一区二区| 日韩欧美一区二区免费| 日韩成人一区二区三区在线观看| 欧美午夜一区二区| 一区二区三区四区精品在线视频| 成人18视频在线播放| 欧美国产欧美亚州国产日韩mv天天看完整| 久久精工是国产品牌吗| 日韩欧美成人一区| 日韩和的一区二区| 欧美一区二区三区视频在线观看| 日韩黄色片在线观看| 欧美一级免费大片| 久久99久久精品| 精品国产污网站| 国产精品影音先锋| 国产人成一区二区三区影院| 国产白丝精品91爽爽久久| 欧美—级在线免费片| 99久久免费国产| 一区二区三区四区高清精品免费观看| 色94色欧美sute亚洲线路一ni| 夜夜爽夜夜爽精品视频| 欧美色视频在线观看| 婷婷六月综合网| 精品久久久久久无| 国产成人精品三级麻豆| 1区2区3区国产精品| 欧美专区日韩专区| 美脚の诱脚舐め脚责91| 中文字幕精品一区二区精品绿巨人| 成人激情图片网| 亚洲综合色自拍一区| 欧美一区二区观看视频| 国产成人综合视频| 亚洲精品高清在线观看| 69久久夜色精品国产69蝌蚪网| 狠狠色综合日日| 亚洲视频免费在线观看| 欧美日韩aaa| 丁香另类激情小说| 亚洲成人av免费| 国产亚洲欧美在线| 欧美性xxxxxx少妇| 国产一区二区三区免费观看| 亚洲男人的天堂在线aⅴ视频| 在线成人免费视频| 成人久久18免费网站麻豆| 亚洲高清三级视频| 欧美国产精品久久| 91精品一区二区三区久久久久久 | 久久久久久久久久久久久久久99| 国产盗摄一区二区| 天天色综合成人网| 中文字幕在线不卡一区| 日韩一二三区视频| 色先锋资源久久综合| 国产在线精品视频| 亚洲成在线观看| 国产精品成人免费在线| 欧美一级生活片| 欧美亚洲愉拍一区二区| 从欧美一区二区三区| 日韩成人精品在线观看| 亚洲天堂中文字幕| 国产午夜亚洲精品不卡| 欧美一二三区精品| 欧美性猛交xxxx黑人交| gogogo免费视频观看亚洲一| 国产精品一二二区| 蜜臂av日日欢夜夜爽一区| 亚洲综合丁香婷婷六月香| 亚洲国产精品二十页| 欧美大片顶级少妇| 欧美一级视频精品观看| 欧美午夜精品理论片a级按摩| 成年人午夜久久久| 成人午夜精品一区二区三区| 美洲天堂一区二卡三卡四卡视频| 亚洲国产日韩在线一区模特| 亚洲私人黄色宅男| 国产精品成人一区二区三区夜夜夜| 精品国产乱码久久久久久蜜臀| 欧美精品亚洲二区| 欧美日韩在线亚洲一区蜜芽| 日本韩国精品一区二区在线观看| 成人一区在线看| 国产99久久久国产精品| 国产精品69久久久久水密桃| 国产精品99久久久久久宅男| 国产最新精品免费| 国产精品亚洲一区二区三区在线 | 亚洲国产成人精品视频| 一区在线观看视频| 亚洲三级电影全部在线观看高清| 国产精品久久久久久亚洲毛片| 中文字幕免费观看一区| 国产欧美日韩视频在线观看| 国产欧美视频一区二区三区| 久久久久久99精品| 中文字幕久久午夜不卡| 亚洲欧美中日韩| 亚洲另类在线制服丝袜| 亚洲综合在线电影| 日韩激情中文字幕| 久久99国产精品久久99果冻传媒 | 亚洲成人一区二区在线观看| 亚洲成av人片在线观看| 免费在线观看日韩欧美| 国产麻豆91精品| 成人黄色av电影| 欧美专区在线观看一区| 91麻豆精品国产91久久久更新时间| 91精品国产全国免费观看| 精品国产99国产精品| 中文字幕国产精品一区二区| 亚洲另类春色国产| 日韩高清不卡一区二区| 国产成人在线视频播放| 色狠狠色狠狠综合| 日韩一区二区在线看| 国产亚洲自拍一区| 一区二区三区四区不卡视频| 美女视频免费一区| 成人高清免费在线播放| 国产午夜精品一区二区三区嫩草| 国产精品无圣光一区二区| 亚洲精品你懂的| 精品一区二区三区在线播放视频| 国产成人自拍在线| 欧美另类videos死尸| 国产欧美一区二区精品性色超碰| 综合电影一区二区三区| 久久电影国产免费久久电影| 成人18视频日本| 日韩精品中文字幕在线一区| 亚洲欧美日韩在线播放| 久久91精品国产91久久小草| 一本大道久久a久久精品综合| 欧美mv和日韩mv国产网站| 亚洲欧美一区二区三区孕妇| 精彩视频一区二区三区| 欧美丝袜丝交足nylons图片| 久久精品网站免费观看| 日韩精品视频网站| 91在线视频观看| 久久九九国产精品| 日本成人超碰在线观看| 色中色一区二区| 国产色产综合产在线视频| 肉色丝袜一区二区| 色偷偷88欧美精品久久久| 日本一区二区三区高清不卡| 日本va欧美va精品| 在线观看网站黄不卡| 亚洲欧美综合色| 成人午夜av影视| 久久精品一区二区| 久久国产生活片100| 在线播放一区二区三区| 一区二区三区四区激情| 91丨porny丨国产入口| 欧美国产丝袜视频| 国产永久精品大片wwwapp| 555夜色666亚洲国产免| 亚洲夂夂婷婷色拍ww47| 久久精品夜色噜噜亚洲a∨| 天堂久久一区二区三区| 91福利在线看| 亚洲综合网站在线观看| 色综合久久久网| 亚洲色大成网站www久久九九| 成人免费高清在线观看| 中文字幕国产一区| av激情亚洲男人天堂| 自拍偷拍亚洲欧美日韩| 91美女视频网站|