资源简介
这部分代码属于一个完整的模拟QQ功能 使用eclipse开发 运用swt JFace技术 同步实现了界面的美化
代码片段和文件信息
/*
* LumaQQ - Java QQ Client
*
* Copyright (C) 2004 notXX
* luma
*
* This program 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.
*
* This program 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 this program; if not write to the Free Software
* Foundation Inc. 59 Temple Place Suite 330 Boston MA 02111-1307 USA
*/
package edu.tsinghua.lumaqq.qq.net;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.util.linkedList;
import java.util.Queue;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import edu.tsinghua.lumaqq.qq.QQ;
import edu.tsinghua.lumaqq.qq.packets.ErrorPacket;
import edu.tsinghua.lumaqq.qq.packets.OutPacket;
/**
* 部分实现包收发.
*
* @author notxx
* @author luma
*/
abstract class AbstractPort implements IPort INIOHandler {
private static final Log log = LogFactory.getLog(AbstractPort.class);
/** 发送缓冲区 */
protected ByteBuffer sendBuf;
/** 接收缓冲区 */
protected ByteBuffer receiveBuf;
/** 发送队列 */
protected Queue sendQueue;
/** 端口策略 */
protected IConnectionPolicy policy;
/** 连接池 */
protected IConnectionPool pool;
/** 端口名称 */
protected String name;
/** 远程地址 */
protected InetSocketAddress remoteAddress;
/**
* 构造函数
*/
public AbstractPort(IConnectionPolicy policy) {
this.policy = policy;
sendQueue = new linkedList();
sendBuf = ByteBuffer.allocateDirect(QQ.QQ_MAX_PACKET_SIZE);
receiveBuf = ByteBuffer.allocateDirect(QQ.QQ_MAX_PACKET_SIZE);
}
public String getId() {
return policy.getConnectionId();
}
public synchronized void clearSendQueue() {
sendQueue.clear();
}
public IConnectionPool getPool() {
return pool;
}
public void setPool(IConnectionPool pool) {
this.pool = pool;
}
/* (non-Javadoc)
* @see edu.tsinghua.lumaqq.qq.net.IPort#add(edu.tsinghua.lumaqq.qq.packets.OutPacket)
*/
public synchronized void add(OutPacket packet) {
sendQueue.offer(packet);
policy.flush();
}
/* (non-Javadoc)
* @see edu.tsinghua.lumaqq.qq.IPort#isEmpty()
*/
public synchronized boolean isEmpty() {
return sendQueue.isEmpty();
}
/* (non-Javadoc)
* @see edu.tsinghua.lumaqq.qq.net.IPort#remove()
*/
public synchronized OutPacket remove() {
return sendQueue.poll();
}
/* (non-Javadoc)
* @see edu.tsinghua.lumaqq.qq.net.IPort#getNIOHandler()
*/
public INIOHa
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2010-11-04 10:35 jql_net_2006\
文件 439 2010-11-05 09:31 jql_net_2006\.classpath
文件 388 2007-04-09 09:47 jql_net_2006\.project
目录 0 2010-11-04 10:35 jql_net_2006\.settings\
文件 88 2010-11-04 10:35 jql_net_2006\.settings\org.eclipse.core.resources.prefs
文件 230 2007-04-09 09:47 jql_net_2006\AUTHORS
目录 0 2013-03-21 09:32 jql_net_2006\build\
文件 1641 2007-04-09 09:47 jql_net_2006\build.xm
目录 0 2013-03-21 09:32 jql_net_2006\build\edu\
目录 0 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\
目录 0 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\
目录 0 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\
目录 0 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\net\
文件 3785 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\net\AbstractPort.class
文件 4848 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\net\AbstractProxy.class
文件 5169 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\net\HttpProxy.class
文件 421 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\net\INIOHandler.class
文件 650 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\net\IPort.class
文件 407 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\net\IProxy.class
文件 7797 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\net\Porter.class
文件 1179 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\net\PortGate$1.class
文件 8568 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\net\PortGate.class
文件 550 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\net\PortGateFactory.class
文件 2890 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\net\ProxyVerifier.class
文件 6632 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\net\Socks5Proxy.class
文件 7555 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\net\TCPHttpPort.class
文件 7407 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\net\TCPPort.class
文件 7565 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\net\TCPSocks5Port.class
文件 6191 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\net\UDPPort.class
文件 8208 2013-03-21 09:32 jql_net_2006\build\edu\tsinghua\lumaqq\qq\net\UDPSocks5Port.class
目录 0 2013-03-21 09:32 jql_net_2006\build\me
............此处省略4891个文件信息
- 上一篇:CNKI E-learning
- 下一篇:最完整的欧姆龙PLC培训教程合集书签版
相关资源
- Eclipse4.5.2 64位版本
- Eclipse Rich Client Platform 2nd Edition[文字版
- PC(Eclipse)和安卓(AS)的蓝牙通信
- 仿小米天气预报appADT ECLIPSE
- Eclipse实用教程[郑阿奇资料
- eclipse-inst-linux32.tar.gz
- Swing可视化插件Eclipse
- hadoop-eclipse-plugin-1.0.05个版本
- 基于MyEclipse 的图书管理系统
- dorado的eclipse插件
- 基于SSM的公园园林绿化管理系统
- eclipse4.6.1.rar
- PyDev 7.0.3
- spring源码,构建好的,可直接导入e
- myeclipse SVN插件1.8 和tortoise SVN 1.7 版本
- aptana3 插件支持eclipse3.6
- eclipse jettry插件runjettyrun 1.3.3离线安装
- eclipse_svn_site-1.10.5.zip
- MyEclipse安装SVN插件
- eclipse-2019.rar
- myeclipse SVN插件程序文件
- Myeclipse讲师全面讲解pdf版
- activiti 工作流详细文档教程+eclipse安装
- svn-eclipse-site-1.6.10.zip
- hadoop2.5.0-eclipse插件
- Eclipse4.x的SVN插件
- Eclipse SVN插件 site-1.10.9.zip
- Eclipse_Swt_Jface_核心应用的源码
- swt+spring+mybatis
- 基于SSH的医院在线挂号源码+数据库
评论
共有 条评论