0 0

关于Mina中服务器给客户端发送数据的问题3

现在的要求是当客户端连接服务器后,发送“login”登陆报文,服务器接受到登陆消息后,就要给客户端一直发送数据。
请问应该怎么做?我开启了一个线程,然后给客户端发送消息,但是客户端收不到。

这个是我写的线程类
public class SendMessageThread implements Runnable{

	private IoSession session = null;
	private String msg = null;
	
	public SendMessageThread(IoSession session) {
		this.session = session;
	}
	
	public SendMessageThread(IoSession session, String msg) {
		this.msg = msg;
	}
	
	@Override
	public void run() {
		// TODO Auto-generated method stub
		if(null == msg) {
			msg = "test";
		}
		while(true) {
			System.out.println(new Date()+":"+msg);
			session.write(new Date()+":"+msg);
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}

}


服务器端messageReceived方法,接受到登陆报文后,就一直给客户端发送消息
public void messageReceived(IoSession session, Object obj) throws Exception {
		// TODO Auto-generated method stub
		String msg = (String)obj;
		System.out.println("服务器收到:"+msg);
		if(msg.equalsIgnoreCase("login")) {
			System.out.println("用户登陆");
			session.write("nihao");
			session.write("nono");
			new SendMessageThread(session).run();
		
		} else {
			System.out.println("Undefined operation.");
		}
	}
2012年4月11日 11:39

1个答案 按时间排序 按投票排序

0 0

采纳的答案

Runnable不能直接调用run(),应该调用start()

2012年4月12日 02:48

相关推荐

    Apache Mina2服务器和客户端简单实例

    在本实例中,我们将探讨如何使用Apache Mina2构建一个简单的服务器和客户端。 首先,让我们了解一下Mina2的核心概念。Mina2基于Java NIO(Non-blocking I/O)库,提供了异步I/O操作,这意味着它不会因为等待数据而...

    mina客户端简单代码示例

    标题中的"mina客户端简单代码示例"意味着我们将探讨如何使用Mina框架编写一个基础的客户端程序,该程序能够连接到服务器并发送数据。描述指出,运行这个客户端程序(minaTestClient)会展示一个窗口,用户可以通过...

    mina客户端服务器简易Demo

    Mina服务器端主要负责监听网络连接、接收客户端请求并发送响应。在这个Demo中,服务器端通常会包含以下组件: 1. **ServerBootstrap**: 这是服务器启动的核心类,用于配置服务器的参数,如绑定端口、选择NIO或BIO...

    Mina客户端服务器Demo

    在Demo中,可能包含自定义的编码器和解码器,确保客户端发送的数据能被正确解析,反之亦然。 - **事件处理**:Mina使用事件驱动模型,如`messageReceived()`、`sessionCreated()`、`sessionClosed()`等方法会在相应...

    Mina开发之客户端

    6. **发送和接收数据**: 在Event Handler中,我们可以调用Session的write方法发送数据,监听MessageReceived事件接收数据。 7. **关闭连接**: 当不再需要连接时,调用Session的close方法关闭连接。 在实际开发中,...

    mina2服务端客户端实例,保证能够正常运行

    2. 客户端代码:演示如何建立一个MINA客户端,连接到服务端,发送数据并接收回应。 3. 相关配置文件:可能包括服务器端和客户端的配置,如日志配置、线程池设置等。 4. 测试脚本或文档:解释如何运行示例,以及预期...

    mina 同步客户端,异步客户端

    3. **异步客户端**:异步客户端则使用非阻塞I/O,这意味着客户端发送请求后不会等待服务器的回复,而是立即返回并继续执行其他任务。这样可以提高系统并发能力,尤其是在处理大量并发连接时。MINA的异步客户端同样...

    mina框架中socket使用,有服务端和客户端。

    一旦连接成功,客户端也可以创建`Session`对象,通过这个`Session`发送数据给服务端。同样,客户端也可以注册事件处理器来响应服务端的消息。 5. **事件驱动模型**:MINA采用事件驱动模型,通过监听器和处理器来...

    mina2 cs 客户端服务器通信 已经实现完整通信代码

    它们可以调用write()方法发送数据,并在IoHandler的messageReceived()方法中处理接收到的数据。 - MINA2支持多种编码和解码器,可以方便地处理各种类型的数据,如字符串、字节流等。 5. **会话管理**: - Session...

    mina服务器和客服端实现

    - **发送与接收数据**:客户端通过Session发送数据,并监听Session的事件来接收服务器响应。 4. **编解码过程** 在Mina中,数据的编码和解码通常由ProtocolDecoder和ProtocolEncoder实现。这两个接口分别处理输入...

    MINA 服务端和客户端demo

    这两个部分都是基于MINA框架构建的,分别实现了服务器接收客户端连接、处理数据和客户端发起连接、发送数据的功能。 1. **MINA服务端**: - MINA服务端的核心组件是Acceptor,它负责监听指定的端口,当有新的...

    android mina 即时通讯 服务端客户端代码

    标题中提到的"android mina 即时通讯 服务端客户端代码",意味着我们将探讨如何在Android客户端和服务器之间建立这样的通信链路。在服务端,你需要创建一个基于Mina的SocketAcceptor,监听特定的端口(如描述中提到...

    mina 服务器socket客服端发消息

    1. **初始化ServerBootstrap**:首先,我们需要创建一个`ServerBootstrap`对象,它是Mina服务器的核心配置类。 2. **设置通道处理链**:通过`pipeline()`方法设置`ChannelPipeline`,它定义了事件的处理流程。一般会...

    mina及时推送客户端服务端实现

    MINA提供了一套事件驱动的模型,使得客户端可以处理连接建立、数据接收和发送等事件。 4. **服务端实现**:服务端同样基于MINA,通过ServerBootstrap配置Acceptor,监听端口,接收到客户端连接请求后,创建Session...

    给予mina 协议进行大数据传输

    标题中的“给予mina协议进行大数据传输”指的是一种基于Java的网络通信框架——Apache MINA(Model-View-Controller for Network Applications)。MINA是Apache软件基金会的一个项目,它提供了一个高度可扩展和高...

    mina 服务器简介,个人感觉不错

    `write(message)`用于向客户端发送数据;而`close()`则用于结束会话。 3. **IoProcessor**: IoProcessor是一个内部线程,用于处理I/O事件,如数据的读取和写入。它定期检查Session是否有待处理的数据,并通过...

    Mina 服务端客户端示例程序

    6. **会话管理**:Mina中的IoSession对象代表了服务端和客户端之间的连接会话,提供了管理连接状态、传输数据和配置会话属性的能力。 7. **数据传输**:在示例中,我们可以看到如何使用WriteFuture和ReadFuture来...

    mina 长连接 客户端+服务端

    Mina 是一个强大的开源框架,主要用于构建网络应用,如服务器和客户端。在Java环境中,它提供了高效的、事件驱动的网络应用程序框架,支持TCP和UDP协议,适用于开发高性能、高并发的网络服务。在这个"mina 长连接 ...

    java客户端socket与mina服务端通信

    - 服务端:在Mina的处理器中,重写`sessionCreated()`, `messageReceived()`, `messageSent()`等方法,处理客户端连接、接收和发送数据。 - 客户端:通过Socket的输入/输出流读写数据,实现与服务端的通信。 4. *...

    mina2推送demo客户端

    在"echo_client_udp"中,当客户端发送数据后,MINA2会异步等待服务器的响应,这样可以有效地避免线程阻塞,提高系统性能。 5. 学习与实践价值: "echo_client_udp"是学习MINA2和UDP通信的理想起点。通过这个示例,...

Global site tag (gtag.js) - Google Analytics