ftp客户端代码java代码(ftp服务器java)

太平洋在线下载手机版 51 0

  本资源由 伯乐在线- oneDay整理,您也想贡献一份力量?欢迎加入我们 »

  

  Smack是一个用于和XMPP服务器通信的类库,可以实现即时通讯和聊天。Smack是Spark项目的核心。

  示例代码

  Java

  1

  2

  3

  4

  5

  6

  7

  8

  // Create a connection to the jabber.org server.

  Connection conn1=newXMPPConnection("jabber.org");

  conn1.connect();

  // Create a connection to the jabber.org server on a specific port.

  ConnectionConfiguration config=newConnectionConfiguration("jabber.org",5222);

  Connection conn2=newXMPPConnection(config);

  conn2.connect();

  Smack主要优势

  非常简单易用,并且有十分强大的API,只需短短几行代码就可以向用户发送文本消息:

  Java

  1

  2

  3

  4

  5

  6

  7

  AbstractXMPPConnection connection=newXMPPTCPConnection("mtucker","password","jabber.org");connection.connect().login();

  Chat chat=ChatManager.getInstanceFor(connection).createChat("jsmith@jivesoftware.com",newMessageListener(){

  publicvoidprocessMessage(Chat chat,Message message){

  System.out.println("Received message: "+message);

  }

  });chat.sendMessage("Howdy!");

  不像其他类库那样强制你进行包级别的编码。Smack提供了智能的、更高级的构造,像Chat和Roster类,可以让你进行更高效的编程;.你不需要熟悉XMPP XML格式,甚至不需要熟悉XML;提供了简单的机器到机器通讯,Smack允许在每个消息中设置任意数量的属性,包括java对象;Apache许可下的开源类库,这意味着使用者可以将Smack整合进商业的或者非商业的应用中。

  关于XMPP

  XMPP (E xtensible Messaging and Presence Protocol)是一个由IETF标准化的开放协议,由XMPP标准基金会支持和扩展(https://www.xmpp.org)。

  使用前提

  Smack的唯一必要条件是JDK 1.2 或更高版本。

  需要JAR包

  Smack意味着很容易地嵌入到任何现有的Java应用程序中,类库作为Jar文件在应用程序所需的功能上提供更多的灵活性:

  smack-core.jar— 提供XMPP核心功能,包括XMPP RFC部分所有XMPP的特征。smack-tcp.jar— 支持基于TCP协议的XMPP,包括你通常需要使用的XMPPTCPConnection类。smack-extensions.jar— 支持众多由XMPP标准基金会定义的扩展(XEPs),包括多用户对话、文件传输、用户搜索等等。这些扩展记录在扩展手册。smack-experimental.jar— 支持由XMPP标准基金会定义的试验的扩展 (XEPs),这些扩展的API和和功能应被视为是不稳定的。smack-legacy.jar— 支持由XMPP标准基金会定义的遗留的扩展。smack-bosh.jar— 支持BOSH(XEP-0124)。此代码应被视为测试版。smack-jingle.jar— 支持Jingle。此代码是旧的, 现在没有了。smack-resolver-dnsjava.jar— 支持借助于dnsjava解决DNS SRV记录 ,是不支持javax.naming接口的理想平台。smack-resolver-javax.jar— 支持解决 DNS SRV 记录借助于javax namespace API。smack-debug.jar— 一种用于协议通信的增强的GUI调试器,当在类路径中找到并启用调试时它会自动被使用。

  配置

  Smack有一个包含2个阶段的初始化过程。

  初始化系统属性 – 初始化所有通过类 SmackConfiguration访问系统属性,这些属性由该类上的getXXX方法检索。初始化启动类 – 初始化任何类意味着在启动时是活跃的,具体操作如下:首先实例化这个类,如果该类扩展了 SmackInitializer,则再调用该类上的初始化函数。如果它没有实现这个接口,那么初始化将会发生在类被加载自动执行静态代码块时。

  初始化是通过一个配置文件来完成。默认情况下,Smack会去加载一个Smack jar包下org.jivesoftware.smack/smack- config.xml的文件。这个默认的配置包含一个初始化类的列表去加载。所有需要被初始化的管理型的类都包含在这个初始化列表中。

  建立一个连接

  XMPPTCPConnection类用于创建到XMPP服务器的连接,下面的代码是创建一个连接的例子:

  Java

  1

  2

  3

  4

  5

  6

  7

  8

  9

  10

  11

  12

  13

  14

  // Create a connection to the jabber.org server.

  AbstractXMPPConnection conn1=**new**XMPPTCPConnection("username","password""jabber.org");

  conn1.connect();

  // Create a connection to the jabber.org server on a specific port.

  XMPPTCPConnectionConfiguration config=XMPPTCPConnectionConfiguration.builder()

  .setUsernameAndPassword("username","password")

  .setServiceName("jabber.org")

  .setHost("earl.jabber.org")

  .setPort("8222")

ftp客户端代码java代码(ftp服务器java)-第1张图片-太平洋在线下载

  .build();

  AbstractXMPPConnection conn2=**new**XMPPTCPConnection(config);

  conn2.connect();

  注意:默认情况下(和可能时)连接到服务器时最大的安全性将被使用,包括使用的TLS加密。ConnectionConfiguration 类在连接创建的时候提供了先进的控制,如禁用和或需要加密的能力。详情请参考XMPPConnection Management。

  一旦你创建了一个连接,你需要用XMPPConnection.login()这个方法登录。一旦你登录后,就可以被其他用户通过创建新的聊天或群聊的对象聊天。

  操作Roster

  花名册(roster)让你保持跟踪其它用户的可用性(存在)。用户可以被分成像“朋友”、“同事”这样的组,从而知道其它的用户在线还是离线。

  可以使用XMPPConnection.getRoster()方法检索花名册。你可以用花名册(roster)类查找花名册的所有条目,它们所属的组以及每个条目当前呈现的状态。

  读写packet

  从客户端以XML格式发送到XMPP服务器的每个消息被称为一个数据包(packet),org.jivesoftware.smack.packet包中包含了一些类,这些类封装了XMPP所允许的三个不同的基本包类型(message,presence和IQ)。像Chat和GroupChat这样的类提供了更高类别的构造能够自动地创建和发送数据包,当然你也可以直接创建和发送数据包。 以下代码是一个将你的当前状态改为“隐身“,从而不被别人看到的例子:

  Java

  1

  2

  3

  4

  5

  // Create a new presence. Pass in false to indicate we're unavailable._

  Presence presence=newPresence(Presence.Type.unavailable);

  presence.setStatus("Gone fishing");

  // Send the packet (assume we have an XMPPConnection instance called "con").

ftp客户端代码java代码(ftp服务器java)-第2张图片-太平洋在线下载

  con.sendStanza(presence);

  Smack提供两种方法读取收到的数据包:PacketListener和PacketCollector。二者都是使用PacketFilter实例来决定哪个数据包应该被处理。数据包监听器(packet listener)用于事件样式的编程,而数据包收集器(packet collector)有一个可以做轮询和阻塞操作的数据包的结果队列。所以,当我们想对一个有可能随时到来的packet采取一些操作时,使用packet监听器;而当我们想等待一个特别的packet到来时,使用packet收集器。数据包包收集器和监听器可以通过XMPPConnection的实例来创建。

  开发资源

  协议

  Smack遵循Apache开源协议发布。

  官方网站:https://www.igniterealtime.org/projects/smack/

  开源地址:https://github.com/igniterealtime/Smack

标签: ftp客户端代码java代码

抱歉,评论功能暂时关闭!